ขอถามเรื่องselect ข้อมูลอกมาแสดง Run ที่ server ช้ามากแต่ Run ที่ localhost เร็วอ่ะครับ MySQL
คือผม query sql กว่ามันจะแสดงข้อมูลออกมาช้ามากครับแต่ Run ที่ localhost เร็วเครื่องเราเองแปปเดียวเอง(ข้อมูลไม่เยอะครับ)พอจะมีใครเคยเจอปัญหานี้ไหมครับงงมากเลยไม่รู้เกี่ยวกับอะไรหรือผมเขียนscript Sqlผิด
script Sql ครับ
Code (SQL)
SELECT * FROM namedb,data_in
where namedb.iddoc = data_in.doc_in
and (data_in.s_date BETWEEN '28.04.2015' and '28.04.2015')
and namedb.iddoc IN
(SELECT doc_in FROM data_in
where data_in.doc_in NOT IN
( SELECT doc_out FROM data_out ))
โอ้ ใช้ IN แบบ SUB SELECT นี่ช้ามากครับ ลองใช้ INNER JOIN ประมาณนี้ครับ
Code
SELECT a.* , b.* FROM namedb a
INNER JOIN data_in b ON a.iddoc = b.doc_in
INNER JOIN data_out c ON a.doc_in != c.doc_out
WHERE b.s_date BETWEEN '2015-04-28' and '2015-04-28'
SELECT *
FROM namedb
inner join data_in
ON namedb.iddoc = data_in.doc_in
WHERE data_in.s_date BETWEEN '28.04.2015' and '28.04.2015'
AND NOT EXISTS (
SELECT doc_out FROM data_out WHERE doc_out=data_in.doc_in LIMIT 1
)