У меня есть таблица "канал".
channelId
a
b
c
d
таблица "видео"
videoId | channelId
1 | a
2 | b
3 | c
4 | e
таблица "комментарий"
commentID | videoID | videoID_channelID
xx | 1 | a
yy | 2 | b
zz | 5 | e
tt | 6 | f
Ключи есть :
- channel.channelId = video.channelId = comment.videoID_channelID
- video.videoId = comment.videoID
Мне нужно:
- все каналы по крайней мере с 1 видео и 1 комментарием
- все видео по крайней мере с 1 каналом и 1 комментарием
- все комментарии с видео и каналом
Итак, я хочу сделать 3 SQL операторов, по одному для каждой таблицы, которая ссылается на другую 2.
Я пробовал это с двойным внутренним соединением (https://www.sqlitetutorial.net/sqlite-inner-join/ ) но, похоже, он возвращает все подходящие комбинации, а не:
channelId
a
b
videoId | channelId
1 | a
2 | b
commentID | videoID | videoID_channelID
xx | 1 | a
yy | 2 | b
Мой код пока что позволяет получить все каналы с хотя бы 1 видео и 1 комментарием:
SELECT
channel.channelId
FROM
channel
INNER JOIN video ON video.channelId = channel.channelId
INNER JOIN comment ON comment.videoID_channelID = video.channelId