我在 SQL 语句方面遇到问题。我无法理解 MySQL 中的多表交互。
所以我有 2 个表:
这是我的users
表:
这是我的messages
表:
我想要做的是生成一个表格,基本上显示:
如果我是用户 1
丹尼尔 - 墨尔本大学
我只希望在我向他发送消息或从他那里收到消息时显示他的名字。
完全不知道如何做到这一点,有什么想法吗?
非常感谢!
最佳答案
有几种方法。
SELECT
users.*
FROM
users
INNER JOIN
(
SELECT DISTINCT messages_senderid AS user_id FROM messages WHERE messages_receiverid = 1
UNION
SELECT DISTINCT messages_receiverid AS user_id FROM messages WHERE messages_senderid = 1
)
contacts
ON users.users_userid = contacts.user_id
或者也许...
SELECT
users.*
FROM
users
WHERE
EXISTS (SELECT * FROM messages WHERE messages_senderid = users.users_userid AND messages_receiverid = 1)
OR EXISTS (SELECT * FROM messages WHERE messages_receiverid = users.users_userid AND messages_senderid = 1)
关于mysql - 内部联接?用户 ID 与其他用户 ID 的两个表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23406900/