[quote=引用 2 楼 sinat_28984567 的回复:] 大概这样写: SELECT a.* , CASE WHEN a.type = 1 THEN b.id ELSE c.id END AS otherid FROM a LEFT JOIN b ON a.id = b.id RIGHT JOIN c ON a.id = c.id
SELECT a.* , CASE WHEN a.type = 1 THEN b.id ELSE c.id END AS otherid FROM a LEFT JOIN b ON a.id = b.id RIGHT JOIN c ON a.id = c.id
[quote=引用 1 楼 zengertao 的回复:] case when 就可以满足了啊
大概这样写: SELECT a.* , CASE WHEN a.type = 1 THEN b.id ELSE c.id END AS otherid FROM a LEFT JOIN b ON a.id = b.id RIGHT JOIN c ON a.id = c.id
这个用动态语句来实现比较好,相当于你生成的语句不是静态的,而是要先看数据是否符合要求,然后语句进行相应的变化
case when 就可以满足了啊
在查询之前预先对查询中的内容进行处理。当某一条件符合时使用左连接查询最终的数据,条件不符合用右连接查询最终的数据
22,210
社区成员
121,726
社区内容
加载中
试试用AI创作助手写篇文章吧