คือตอนนี้ผมติดปัญหาอยู่ที่คิวรี่ข้อมูลได้ช้ามากครับ
ซึ่งผมมีตารางอยู่ 3 ตัวคือ A, B และ C โดยที่ต้องการหาจำนวนแถวของตาราง C แต่ต้องนำตาราง A และ B มาทำการ LEFT JOIN ด้วย เพราะต้องนำมาใช้ในการเช็คเงื่อนไขด้วย
แต่เนื่องจากตาราง C มีจำนวนข้อมูลเยอะมากหลายแสนเรคคอร์ด ฉะนั้นผมจะทำอย่างไรให้สามารถคิวรี่ออกมาได้เร็วครับ
ข้างล่างนี่เป็นตัวอย่างนะครับ
SELECT COUNT(idCron_Like) AS sum_like FROM cron_like
WHERE Cron_Like_Key IN
(
SELECT idCron_Like FROM cron_post AS A
LEFT JOIN cron_comment AS B ON A.idCron_Post = B.Cron_Post_ID
LEFT JOIN cron_like AS C ON A.idCron_Post = C.Cron_Post_ID
WHERE A.Cron_ID = '8'
AND (CAST(A.Created_time AS DATE) BETWEEN '2011-12-01 00:00:00' AND '2011-12-31 00:00:00')
AND A.From_FBID IS NOT NULL
AND A.Post_Type IS NOT NULL
AND B.From_FBID IS NOT NULL
AND B.Rating_ID IS NOT NULL
)
ขอบคุณครับ
Tag : PHP, MySQL
Date :
2012-01-05 15:43:37
By :
LegendORC
View :
823
Reply :
1
No. 1
Guest
ขอโทษครับ ลง Code ผิด ต้องอันนี้ครับ
SELECT COUNT(Cron_Like_Key) AS sum_like FROM cron_like
WHERE Cron_Like_Key IN
(
SELECT Cron_Like_Key FROM cron_post AS A
LEFT JOIN cron_comment AS B ON A.idCron_Post = B.Cron_Post_ID
LEFT JOIN cron_like AS C ON A.idCron_Post = C.Cron_Post_ID
WHERE A.Cron_ID = '8'
AND (CAST(A.Created_time AS DATE) BETWEEN '2011-12-01 00:00:00' AND '2011-12-31 00:00:00')
AND A.From_FBID IS NOT NULL
AND A.Post_Type IS NOT NULL
AND B.From_FBID IS NOT NULL
AND B.Rating_ID IS NOT NULL
)