我正在使用具有重复记录的MySQL非规范化数据库。
其中一个表包含2个不同列的查找。
以下是两个表的示例
表A
id1 id2
202 866
811 202
423 202
202 609
202 335
表B
id值
202热
542寒冷
609温暖
866潮湿
结果
202热
542寒冷
609温暖
866潮湿
查询应该查找列id1中匹配记录的所有记录,然后根据id2查找所有匹配的记录。
换句话说,如果id1上有匹配项,则查找表B中的所有记录,然后根据id2查找附加记录,反之亦然。
我花了3天的时间试图弄乱我的方式。
任何数据库专家都可能有一种编写此SQL的简单方法。
答案 0 :(得分:0)
您可以使用UNION
,例如:
SELECT ta.id1 AS id, tb.value as value
FROM tableA ta JOIN tableb TB ON ta.id1 = tb.id
UNION
SELECT ta.id2 AS id, tb.value as value
FROM tableA ta JOIN tableb TB ON ta.id2 = tb.id