gpt4 book ai didi

php - SQL - 根据条件连接选定的数据或表

转载 作者:搜寻专家 更新时间:2023-10-30 23:37:55 27 4
gpt4 key购买 nike

我有用户和关系的 SQL 表,比如用户{ID,姓名,电子邮件}关系{ID, uid, relid, type}

我想通过 SQL、使用 JOIN 或其他方式获取所有“ friend ”ID、姓名和电子邮件(按当前用户 ID)。

如果使用连接,是连接用户表并选择关系更好还是选择关系并连接用户更好?

类似这样的东西(我现在发明了,我使用了一些不同的表格和代码,对错误感到抱歉)

1:

SELECT DISTINCT u.ID, u.name, u.email FROM users u JOIN relationships r ON (r.uid = 1 OR r.relid = 1) AND r.type = 1 WHERE u.ID = r.uid OR u.ID = r.relid

2:

SELECT DISTINCT u.ID, u.name, u.email FROM relationships r JOIN users u ON r.uid = u.ID OR r.relid = u.ID = 1 WHERE r.uid = u.ID OR r.related = u.ID

编辑:我使用 DISTINCT 是因为当我选择 ID 等于 r.uid 或 r.related 的用户时,我还会为每个关系获取当前用户(uid + 相关)。 DISTINCT 应​​该唯一的用户?我是初学者,在 stackoverflow 上找到了这个。

那么,是选择用户加入关系好还是选择关系加入用户好呢?

顺便说一句:我非常喜欢 UNION 的答案

最佳答案

您可以合并用户在 uidrelid 中的用户。

SELECT users.*
FROM users
INNER JOIN relationships AS rel
ON users.ID = rel.uid
WHERE users.ID = 500

UNION

SELECT users.*
FROM users
INNER JOIN relationships AS rel
ON users.ID = rel.relid
WHERE users.ID = 500

关于php - SQL - 根据条件连接选定的数据或表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39304907/

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