İki tablom var: vehicle_c2c_car_source ve vehicle_c2c_appoint_task. vehicle_c2c_car_source arasında yapısı:mysql sorgumu nasıl optimize edebilirim
/********************************/
`id` int(11) NOT NULL AUTO_INCREMENT
`title` varchar(200) NOT NULL DEFAULT
/******************************/
vehicle_c2c_appoint_task
/******* ***********************/
`id` int(11) unsigned NOT NULL AUTO_INCREMENT
`car_source_id` int(11) NOT NULL DEFAULT '0'
`status` tinyint(4) NOT NULL DEFAULT '0'
v durumun aksesuarı 0,1,2 olabilir. Bir car_source_id bir çok statüye sahip olabilir.
ilk gol durum kayıtlarının miktarı az 3.
ikinci golü durumu 1.
eşit olduğunda durum kayıtların miktarını elde etmektir tüm car_source elde etmektirçıkış gerektiği böyle bir şey:
22222 (durum kayıtlarının id) 1111 (car_source_id) başlık (title)
Benim şu anki çözüm elde etmek ilk 4 (durum = 1 durumu kayıtlarının tutar) tüm car_source bana ilk hedefi ve sonra ikinci hedefi gerçekleştirmek için bir döngü içinde tool_c2c_appoint_task tablosunu sorgulayın. döngüde
SELECT cs.id, pt.car_source_id, cs.title,
FROM vehicle_c2c_car_source AS cs
JOIN vehicle_c2c_appoint_task AS pt ON cs.id = pt.car_source_id
WHERE 1
AND pt.appoint_status NOT IN (2,6)
GROUP BY pt.car_source_id HAVING count(pt.car_source_id) < 3
:
SELECT count(*) as count
FROM vehicle_c2c_appoint_task
WHERE status = 1
group by car_source_id
Ben bir döngü içinde sorgu koymak için iyi bir fikir olmadığını düşünüyorum. Tüm değeri bir sorguda nasıl alabilirim?
SUM (status = 1) hile yaptı, teşekkürler – user3210341