簡體   English   中英

php MySql QUERY for Friends關系表幫助

[英]php MySql QUERY for Friends relations Table help

編輯:勞倫斯。

我現在得到正確的查詢

從用戶,朋友中選擇*,其中(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  

我希望我能說清楚

我不確定我是否理解您的問題,但這不行嗎?

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

你想要一個left join (使用LEFT JOIN操作),而不是一個cartesian join (使用FROM table1, table2語法)。

http://www.w3schools.com/sql/sql_join_left.asp

提示:使用交叉引用表而不是使用id列,您可以創建復合鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM