次の 2 つのクエリが異なる結果を返す理由を解明しようとしています。
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'
しかし、内部結合を追加すると正しくないように見えるさまざまな結果のため (有効なはずの結果がいくつか削除されます)、現在は機能していません。