我有四张桌子a,b,c,d。在表中a我有一对id, name. 在表中b我有一对idx, idy. 来自b.idy表a.id。在表中,c, d我有一对id, value与 table 相关b.idx。
我必须执行这样的查询:
SELECT c.value, d.value
FROM a,b,c,d
WHERE a.name = "test" AND b.idy = a.id AND (c.id = b.idx AND d.id = b.idx)
问题是有时表中缺少记录,c, d因此将返回零记录,但如果在或AND中可用,我需要有结果。我也不能使用,因为它也为两个表返回其他行。cdOR
我想会有一个使用UNION甚至只是嵌套SELECTs 的解决方案。我更喜欢不使用JOIN或使用单独的查询。
提前致谢!
更新:
避免使用的原因JOIN是性能。我现在正在处理的结构比这个复杂得多,所以我确信JOIN在即将到来的将来我会遇到严重的性能问题。