我試圖找出爲什麼以下兩個查詢返回不同的結果:MySQL的內部連接不同的結果
SELECT DISTINCT i.id, i.date
FROM `tblinvoices` i
INNER JOIN `tblinvoiceitems` it ON it.userid=i.userid
INNER JOIN `tblcustomfieldsvalues` cf ON it.relid=cf.relid
WHERE i.`tax` = 0
AND i.`date` BETWEEN '2012-07-01' AND '2012-09-31'
和
SELECT DISTINCT i.id, i.date
FROM `tblinvoices` i
WHERE i.`tax` = 0
AND i.`date` BETWEEN '2012-07-01' AND '2012-09-31'
明顯不同的是內這裏加入,但我不不明白爲什麼具有內部連接的人返回的結果比沒有連接的人要少,我會想,因爲我沒有做任何交叉表引用,他們應該返回相同的結果。
我趕製最後的查詢是
SELECT DISTINCT i.id, i.date
FROM `tblinvoices` i
INNER JOIN `tblinvoiceitems` it ON it.userid=i.userid
INNER JOIN `tblcustomfieldsvalues` cf ON it.relid=cf.relid
WHERE cf.`fieldid` =5
AND cf.`value`
REGEXP '[A-Za-z]'
AND i.`tax` = 0
AND i.`date` BETWEEN '2012-07-01' AND '2012-09-31'
,因爲這似乎不正確,當我加內加入了不同的結果,但(它消除了一定的成果,應該是有效的),它不是目前的工作,謝謝。
我已經回答了類似的問題昨天 –