我有四张桌子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
中可用,我需要有结果。我也不能使用,因为它也为两个表返回其他行。c
d
OR
我想会有一个使用UNION
甚至只是嵌套SELECT
s 的解决方案。我更喜欢不使用JOIN
或使用单独的查询。
提前致谢!
更新:
避免使用的原因JOIN
是性能。我现在正在处理的结构比这个复杂得多,所以我确信JOIN
在即将到来的将来我会遇到严重的性能问题。