我想根据原始数据库列中的值来连接数据库的其他列。例如,在表A中,我的列“数字”带有谷值(1,2,3),在表B中,我有三个列“ 1”,“ 2”和“ 3”。如果列“ number” = 1,我想加入列“ 1”;否则,如果列“ number” = 2,则加入列“ 2”。我已经尝试过使用此代码,但是它不起作用:
SELECT
a.*
(CASE WHEN a.number = '1' then b.1
CASE WHEN a.number = '2' then b.2
END)FROM
table_a AS a
LEFT JOIN table_b AS b ON a.id = b.id
您能帮我吗?谢谢
将条件移至on
子句:
SELECT a.*, b.*
FROM table_a a LEFT JOIN
table_b b
ON (a.number = 1 and a.id = b.1) OR
(a.number = 2 and a.id = b.2) OR
(a.number = 3 and a.id = b.3);
不清楚在a
条件下要从表join
中匹配什么。我可以推测您希望a.id
匹配b
中三列之一。
好,我解决了这个问题,谢谢您的时间。