前言
一對多,以多為查詢條件
正文
舉例:
兩張表,用戶表,物品表。一個用戶可以有多個物品,根據擁有的物品去查詢用戶。
t_user表 | |
---|---|
user_id |
user_name |
1 | 小王 |
2 | 小劉 |
t_goods表 | |
---|---|
g_id |
g_name |
1 | 手機 |
2 | 電腦 |
3 | 書包 |
4 | 筆 |
5 | 電視 |
6 | 游戲機 |
t_user_goods 表 |
|
---|---|
user_id |
g_id |
1 | 1 |
1 | 2 |
1 | 4 |
1 | 6 |
2 | 2 |
2 | 5 |
要根據選擇的物品,來篩選出擁有這些物品的人。
-- 傳入的參數分別是 物品id列表 和 物品id列表的數量
select * from t_user
where user_id in (
select user_id from t_user_goods
where g_id in (?)
group by user_id having count(user_id) >= ?
)