gpt4 book ai didi

mysql - 在可以加入的地方加入,否则不加入

转载 作者:行者123 更新时间:2023-11-29 00:45:02 25 4
gpt4 key购买 nike

所以,我有这个 MySQL 问题。

我一直在查看 LEFT JOIN、INNER JOIN 等。据我了解,LEFT JOIN 从左侧开始连接,如果右侧部分不存在,则其值将设置为 NULL。对于 INNER JOIN,如果没有匹配的连接,则返回一个空集。

正如您从我之前的陈述中看到的那样,我加入了不同的统计数据,例如比赛中的一个用户。但是,如果 uid2 不是 uid1 的 friend ,那么在我的情况下, friend 中的所有字段都将为 null。*

如果他们是 friend ,我将如何获取所有 friend 字段,如果不是,我将如何获取 friends 的字段。 (我不想在检查他们是否是 friend 之前单独声明)。

这是我之前的声明:

SELECT matches.*, statistics.*, friends.*, users.username
FROM `matches`
LEFT JOIN statistics ON matches.uid1=statistics.uid
LEFT JOIN users ON matches.uid1=users.uid
LEFT JOIN friends ON matches.uid1=friends.fid AND matches.uid2=friends.uid
WHERE matches.mid IN (269,231,131)

最佳答案

然后您只需将最后一个 LEFT JOIN 替换为 INNER JOIN:

SELECT matches.*, statistics.*, friends.*, users.username
FROM `matches`
LEFT JOIN statistics ON matches.uid1=statistics.uid
LEFT JOIN users ON matches.uid1=users.uid
INNER JOIN friends ON matches.uid1=friends.fid AND matches.uid2=friends.uid
WHERE matches.mid IN (269,231,131);

但是,当friends 表无法连接时,无法有选择地不返回这些列。

关于mysql - 在可以加入的地方加入,否则不加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860904/

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