我正在尝试使用SQL的JOIN查询从我的成员表中选择一些内容,如果来自friends表的内容等于成员表中的其他内容。
让我稍微扩展一下。
如果friends.user_id
或 friends.friend_id = $variable
,那么select members.username where $variable = members.id
,然后将所有数据放入一个数组($array = array()
。没什么好看的)
我不知道从哪里开始(如果你不知道的话,我是新来的)
感谢所有帮助!
答案 0 :(得分:3)
像
这样的东西SELECT m.username
FROM members m INNER JOIN
friends f ON m.id IN (f.user_id,f.friend_id)
WHERE m.id = $variable
我注意到上面的内容可能会根据表格中的数据返回多个条目,所以这是另一个例子。
SELECT m.username
FROM
members m
WHERE m.id = 2
AND EXISTS (
SELECT 1
FROM friends f
WHERE m.id IN (f.user_id,f.friend_id)
)
上面的例子将向您展示两个陈述之间的区别。
本文有一些很好的连接可视化表示,并且总是很方便。
答案 1 :(得分:0)
SELECT members.username
FROM members, friends
WHERE (friends.user_id = members.id
OR friends.friend_id = members.id) AND
members.id = $variable
答案 2 :(得分:-1)
这应该有效:
SELECT m.username
FROM members m, friends f
WHERE m.id = f.user_id
AND $variable IN (f.user_id, f.friend_id)