我正在嘗試製作新聞Feed,但我被卡住了。 比方說,我有一些數據稱爲表friends
這個MySQL表:MySQL正在尋找多個ID
,讓我們說,我對friends
和uid
有這樣的狀態稱爲表status
再舉例來說,我的用戶ID corrolates與friend_1
或friend_2
爲status
。我需要使用什麼MySQL查詢來查看friends
哪些朋友擁有status
中的行數據?
我正在嘗試製作新聞Feed,但我被卡住了。 比方說,我有一些數據稱爲表friends
這個MySQL表:MySQL正在尋找多個ID
,讓我們說,我對friends
和uid
有這樣的狀態稱爲表status
再舉例來說,我的用戶ID corrolates與friend_1
或friend_2
爲status
。我需要使用什麼MySQL查詢來查看friends
哪些朋友擁有status
中的行數據?
SELECT status.*
FROM status, friends
WHERE (friend_2 = uid AND friend_1 = <your_id>)
OR (friend_1 = uid AND friend_2 = <your_id>);
如果在eevery友誼插入2行(和) - 你不需要OR (...)
這將爲當前用戶的朋友選擇所有狀態。
SELECT s.*
FROM status s
INNER JOIN friends f ON f.friend_2 = s.uid
WHERE f.friend_1 = your_current_user;
另外我建議不要友好鏈接雙向處理。製作單獨的鏈接。例如,如果用戶1和5是朋友,則會有兩條記錄。
| friend_1 | friend_2 |
| 1 | 5 |
| 5 | 1 |
這增加了存儲空間,但簡化了查詢。如果你需要的話,它也能促成單方面的友誼。 :-)
僞Y:SELECT * FROM朋友WHERE ID IN status.uid – mhps 2012-01-08 21:34:14
我有點困惑你的模型。用戶ID在哪裏適合我沒有在任何表格上看到它。這是「朋友?」上的ID嗎? – xQbert 2012-01-08 21:35:09