Таблица с двумя внешними ключами, ссылающимися на одну и ту же таблицу

У меня есть таблица с двумя иностранными ключами, ссылающимися на одну и ту же таблицу. Как вы хотите распечатать содержимое соединения? Я использую SQLite

Таблица А

S.NO  Col1   Col2
1    | a   |  b
2    | f   |  g
3    | d   |  e

ТаблицаB

S.NO  Col3 
a    | apple   
b    | ball
f    | frog
g    | grape
d    | dog
e    | eat

Как распечатать следующее?

S.NO |Col1  | Col2 | Col3| Col4
1    | a    |apple |  b  | ball
2    | f    |frog  |  g  | grape
3    | d    |dog   |  e  | eat

Я пытался

SELECT TableA.Col1, TableB.Col3, TableA.Col1 
FROM TableA, TableB
WHERE TableA.Col1 = TableB.Col3
AND TableA.Col2 = TableB.Col3

Спасибо за вашу помощь.

Отказ от вредных привычек: использование JOIN в старом стиле - этот старый стиль список таблиц, разделенных запятыми был заменен синтаксисом правильный ANSI JOIN в стандарте ANSI-92 SQL (более 25 лет назад), и его использование не рекомендуется
marc_s 26.10.2018 22:55

Для присоединения не обязательно иметь FK. Необходимо и достаточно знать значения таблиц. Здесь для вас важно то, что определенные столбцы в определенных таблицах равны. Псевдонимы позволяют нам многократно использовать одно и то же значение таблицы.

philipxy 27.10.2018 07:01
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
525
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Подойдут два внутренних соединения:

select 
    a.sno, a.col1, b1.col3, a.col2, b2.col3
  from tablea a
  join tableb b1 on b1.sno = a.col1
  join tableb b2 on b2.sno = a.col2

Обратите внимание, что tableb присоединяется дважды. В этом случае вам нужно каждый раз давать ему разные псевдонимы: b1 и b2. В противном случае не было бы четкого способа ссылаться на столбцы из каждого столбца.

Другие вопросы по теме