gpt4 book ai didi

mysql - 左连接的排序子句

转载 作者:行者123 更新时间:2023-11-29 20:21:51 35 4
gpt4 key购买 nike

我正在尝试使用如下查询连接一些表。因为我想得到b表引用的理想的c.name。如果b表在结果集中没有行或者b行没有引用c,那么只需获取a表引用的c.name即可。

SELECT a.*, c.name
FROM a
LEFT JOIN b ON a.b_id = b.id
LEFT JOIN c ON (b.c_id IS NOT NULL AND b.c_id = c.id) OR a.c_id = c.id

然而,mysql总是将c与a.c_id = c.id连接起来,并得到不太受欢迎的c.name。是否可以避免这种情况,或者 mySQL 是否试图尽快获得完整的结果集?

最佳答案

尝试一下可能会有所帮助:

SELECT a.*, c.name
FROM a
LEFT JOIN b ON a.b_id = b.id
LEFT JOIN c ON (b.c_id IS NOT NULL OR b.c_id = c.id) OR a.c_id = c.id

关于mysql - 左连接的排序子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39473460/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com