我试图使用SQL的JOIN查询从我的成员表中选择一些东西,如果来自朋友表的东西等于来自成员表的其他东西。
让我稍微扩展一下。
如果friends.user_id
或 friends.friend_id = $variable
,则select members.username where $variable = members.id
,然后将所有这些数据放入数组($array = array()
。没有花哨的)。
我不知道从哪里开始(我是新手,如果你不知道的话)
感谢所有的帮助!
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)
)
SQL Fiddle DEMO
上面的示例将向您展示两个语句之间的区别。
这篇文章有一些很好的连接的可视化表示,并且总是很方便。
Introduction to JOINs - Basic of JOINs
SELECT members.username
FROM members, friends
WHERE (friends.user_id = members.id
OR friends.friend_id = members.id) AND
members.id = $variable
应该可以:
SELECT m.username
FROM members m, friends f
WHERE m.id = f.user_id
AND $variable IN (f.user_id, f.friend_id)
SQLFiddle .