Mysql 如果存在限制为1的左外部联接值,则选择该值,否则选择另一个值

Mysql 如果存在限制为1的左外部联接值,则选择该值,否则选择另一个值,mysql,sql,Mysql,Sql,如果左外部联接提供了一个值(例如t2.id),我想选择它。请注意,对于我的特定数据,左连接将只有一个或零个匹配项。如果不是,我想选择另一个值 以下操作将不起作用,因为没有限制1的查询可能会返回多行,并且第一行可能恰好不是左连接匹配的行 SELECT COALESCE(t2.id,t1.id) AS id FROM t1 LEFT OUTER JOIN t2 ON t2.id=t1.t2_id WHERE t2.fk=123 ORDER BY id DESC LIMIT 1 如何选择存在限制的左

如果左外部联接提供了一个值(例如t2.id),我想选择它。请注意,对于我的特定数据,左连接将只有一个或零个匹配项。如果不是,我想选择另一个值

以下操作将不起作用,因为没有
限制1
的查询可能会返回多行,并且第一行可能恰好不是左连接匹配的行

SELECT COALESCE(t2.id,t1.id) AS id
FROM t1
LEFT OUTER JOIN t2 ON t2.id=t1.t2_id
WHERE t2.fk=123
ORDER BY id DESC LIMIT 1

如何选择存在限制的左联接返回的值?

顺序更改为:

order by (t2.id is not null) desc

也许你需要改用
内部连接
?@HamletHakobyan。不,如果t2和t1不匹配,还需要结果。谢谢戈登,我回家后会试试的。如果外部联接不匹配,我还会得到结果吗?我想我很快就会发现。@user1032531。是的,你仍然会得到结果。外部联接将返回第一个表中的行,即使没有匹配项。