簡體   English   中英

sql:多對多關系加入

[英]sql: many to many relationship join

我對SQL還是很陌生,所以如果有多種可能性,我想一一看看(並聽聽哪些可能性比其他更好)。 我正在使用sqlite3。

我有以下3個表: userchannelsubscriptions

用戶:

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.

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