Два столбца из таблицы A содержат идентификаторы, которые хранятся в другой таблице B. Как выбрать и получить данные, хранящиеся в таблице B?

У меня есть 2 таблицы, таблица A, в которой есть 2 столбца, содержащие идентификаторы, и таблица B, в которой есть соответствующие идентификаторы с именами фильмов. Я хочу выбрать строку с названиями фильмов, а не идентификаторами фильмов, такими как

Таблица А

+-----+----------------------------------------------+
| id  | name   | favmovieid|   leastfavmovieid       |
+-----+----------------------------------------------+
| 101 | Name 1 |     1     |          5              |
| 102 | Name 2 |     6     |          8              |
| 103 | Name 3 |     8     |          6              |
+-----+----------------------------------------------+

Таблица Б

+-------+---------------------+
| movid | namemovie           |
+-------+---------------------+
|  1    | Harry Potter 1      |
|  2    | Harry Potter 2      |
|  3    | Harry Potter 3      |
|  4    | Lord of the Rings 1 |
|  5    | Lord of the Rings 2 |
|  6    | Lord of the Rings 3 |
|  7    | Iron Man 1          |
|  8    | Iron Man 2          |
+-------+---------------------+

Я попытался использовать внутреннее соединение путем внутреннего соединения обоих столбцов, таких как

Select TableB.namemovie,TableB.namemovie from 
((TableA inner join TableB on TableA.favmovieid=TableB.movid) inner join on TableB TableA.leastfavmovieid=TableB.movid) where TableA.id=101

Но я получаю сообщение об ошибке, говорящее о том, что таблица B упоминается слишком много раз.

Затем я также попробовал союз как

Select TableB.namemovie from (TableA inner join TableB on TableA.favmovieid=TableB.movid)
where TableA.id=101
union 
Select TableB.namemovie from (TableA inner join TableB on TableA.leastfavmovieid=TableB.movid)
where TableA.id=101

он возвращает два названия фильма, но в двух разных строках я хочу вернуть только одну строку, так как я хочу, чтобы в этой строке возвращалось больше информации, например, имя, возможно, цена или любой другой столбец.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
0
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы были близки, трюк использует псевдоним для ссылки на таблицу при каждом соединении, это должно работать:

select b1.namemovie,b2.namemovie from TableA 
inner join TableB b1 on TableA.favmovieid=b1.movid 
inner join TableB b2 on TableA.leastfavmovieid=b2.movid
where TableA.id=101

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