[英]sql: many to many relationship join
我對SQL還是很陌生,所以如果有多種可能性,我想一一看看(並聽聽哪些可能性比其他更好)。 我正在使用sqlite3。
我有以下3個表: user
, channel
, subscriptions
用戶:
user_id name
1 Johnny
2 Stacy
3 Allana
渠道:
channel_id channel_name
1 ESPN
2 Disney
訂閱:
user_id channel_id
1 1
2 2
3 1
3 2
我需要執行什么SQL命令才能獲得下表? 我基本上想查看按名稱訂閱了哪些頻道的人(所以確切地說是在subscriptions
表中列出的內容,但是根據其他表將數字映射到名稱)。
user_id channel_id
Johnny ESPN
Stacy Disney
Allana ESPN
Allana Disney
我已經嘗試了以下方法,但是在return語句中卻什么也沒得到:
select user.name, channel.channel_name from user, channel, subs where user.user_id == subs.user_id and channel.channel_id == subs.channel_id
試試看,讓我知道,以防您遇到任何困難。
select a.name,c.channel_name
from
user a
left join
subscriptions b
on a.user_id = b.user_id
left join
channel c
on b.channel_id = c.channel_id;
或(以您在評論中要求的格式)
select u.name,c.channel_name
from
user u
left join
subscriptions s
on u.user_id = s.user_id
left join
channel c
on s.channel_id = c.channel_id;
尚未測試,請嘗試以下操作:
select u.name ,c.channel from user_id u inner join subscriptions s on u.user_id=s.user_id inner join channel c on s.channel_id=c.channel_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.