這裏是我的表結構:如何限制選擇只有具有共同價值的行?
// users
+----+--------+
| id | name |
+----+--------+
| 1 | Jack |
| 2 | Peter |
| 3 | John |
| 4 | Barman |
| 5 | Ali |
+----+--------+
// friends
+---------+-----------+
| user_id | friend_id |
+---------+-----------+
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 3 | 1 |
| 3 | 2 |
| 3 | 4 |
| 5 | 2 |
+---------+-----------+
-- both user_id and friend_id columns refer to the id column of users table
這裏是我的查詢:
// $id = 1;
select distinct f1.user_id, f1.friend_id
from friend f1
where user_id = $id
or
user_id in (select f2.friend_id
from friend f2
where user_id = $id);
/* output
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 3 | 2 |
| 3 | 4 |
| 5 | 2 |
正如你看到的,我的查詢選擇
Jack
(因爲$id = 1
)- 全部
Jack
的好友 周
- 的
Jack
的朋友
好了所有罰款所有的朋友。實際上,我試圖對結果做一個圖表。其實我做到了。現在我想限制結果只有常見的朋友。我的意思是我想刪除單節點。換句話說,我想選擇至少有兩條邊的朋友。
通過更改查詢或者我應該在PHP圖層中這樣做可能嗎?
視覺例子,它的預期輸出:
添加SELECT COUNT條件在第二個'選擇..'應該做的工作。 – kawadhiya21
更新您的問題,並添加您的選擇和預期結果的實際結果..(根據您的數據樣本) – scaisEdge
@scaisEdge預期輸出添加。 – stack