我想在取决于特定条件的字段上联接两个表:
select * from table1 join table2 on table1.$variable = table2.id
和
$variable = table1.id1 is not null ? table1.id1 : table1.id2
我可以这样做吗?
有几种解决方法
IF()
IFNULL(),
COALESCE(),
CASE
使用中频
SELECT * FROM table1 JOIN table2 ON
IF(table1.id1 IS NOT NULL,table1.id1, table1.id2)=table2.id;
使用IFNULL
SELECT * FROM table1 JOIN table2 ON
IFNULL(table1.id1, table1.id2)=table2.id;
使用COALESCE
SELECT * FROM table1 JOIN table2 ON
COALESCE(table1.id1, table1.id2)=table2.id;
使用案例
SELECT * FROM table1 JOIN table2 ON
(CASE
WHEN table1.id1 IS NULL THEN table1.id2
ELSE table1.id1
END) = table2.id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句