我现在得到了正确的查询
选择* 来自用户,朋友 其中(users.id = friends.user_id1和friends.user_id2 = $ profileID)或(users.id = friends.user_id2和friends.user_id1 = $ profileID)
回答问题
我需要一些帮助来加入我朋友和用户表的结果
这是我朋友们的表格
id user_id1 user_id2
1 | 2 | 3
1 | 2 | 4
1 | 2 | 5
1 | 6 | 2
用户表
id name
2 | sarah
3 | emma
4 | lawrence
5 | cynthia
6 | suzie
我可以轻松地为每个关系设置两行并进行简单的查询 但我更喜欢每个关系有一行,
所以我们假设我们正在关注页面member.php?profile = 2
并且有一个朋友列表,查询是什么样的。
如果我每个关系有两行但是我不想要那个......这就可以了。
SELECT * FROM friends, users WHERE friends.user_id1 = $profileID AND friends.user_id2 = users.id ORDER BY friends.id DESC LIMIT 16
你帮我了吗?像这样的东西
SELECT * FROM friends,users WHERE friends.user_id1 = $profileID AND ALSO WHERE friends.user_id2 = $profileID AND THEN GET FROM users WHERE users.id = friends.user_id1 AND ALSO WHERE users.id = friends.user_id2
我希望自己清楚明白
答案 0 :(得分:0)
我不确定我理解你的问题,但不会这样做吗?
SELECT * FROM friends, users where friends.user_id1 = $profileID or friends.userid2 = $profileID and users.id = friends.user_id1 or users.id = friends.user_id2
答案 1 :(得分:0)
您需要left join
(使用LEFT JOIN运算符),而不是cartesian join
(使用FROM table1, table2
语法)。
http://www.w3schools.com/sql/sql_join_left.asp
提示:使用交叉引用表而不是id列,可以创建复合键。