是否可以在MYSQL中
有三个表
select user_id if task_status = 2 join task_assigned_to ta on ta.task_id = tasks.task_id else join task_suggested_to ts on ts.task_id = tasks.task_id
以下是我的示例查询我想要的内容。
所有答案都将受到赞赏
谢谢
答案 0 :(得分:1)
只使用你的条件加入
SELECT * FROM t
JOIN task_assigned_to ta ON ta.task_id = t.task_id AND t.task_status = 2
JOIN task_sugggested_to ts ON ts.task_id = t.task_id
这是fiddle,一般的想法是使用LEFT连接获取所有数据,然后使用WHERE ts IS NOT NULL和COLAESCE ..或任何您需要的任何内容过滤它。
答案 1 :(得分:1)
您可以加入两者,并在您选择的字段中使用if语句。 这在某些数据集/表中很有用,但如果连接速度很慢或者您从不需要两个结果,则应该避免使用。 但是,如果您打勾,您可能希望同时显示受让人和建议的受让人(如果不同)。
select
ticket.id
empassign.name assigned,
empsuggested.name suggested,
ifnull(empassigned.name,empsuggested) autoassigned
from
ticket
left join emps empassign on empassign.id=ticket.assignedid
left join emps empsuggested on empassign.id=ticket.suggestedid