Объединение таблиц, в которых в таблице THIRD содержатся пустые значения - PullRequest
1 голос
/ 12 мая 2019

Я работаю над электронным словарем, и у меня есть 2 таблицы:

Первая таблица: Термин

+----+--------------+
| id | term_text    |
+----+--------------+
| 1  | hello        |
| 2  | how are you? |
| 3  | hola         |
+----+--------------+

Вторая таблица: Словарь

<code><pre>
+-----------+------------+
| term_id_1 | term_id_2  |
+-----------+------------+
| 1         | 3          | /* hello - hola
| 2         | NULL       | /* how are you? - NULL
+-----------+------------+

Я хочу отобразить так:

<code><pre>


+--------------+-------------+
| term_text_1  | term_text_2 |
+--------------+-------------+
| hello        | hola        | 
| how are you? | NULL        | 
+--------------+-------------+

Я пытался получить данные, используя следующий запрос:

<code><pre>
SELECT t1.term_text_1, t2.term_text_2
FROM dictionary d, term t1, term t2
WHERE d.term_id_1 = t1.id
AND d.term_id_2 = t2.id

Но я получал только там, где значение не равно нулю!

Ответы [ 2 ]

1 голос
/ 12 мая 2019

Вам нужно присоединиться dictionary с term дважды:

select 
  t1.term_text term_text_1,
  t2.term_text term_text_2
from dictionary 
left join term t1 on t1.id = term_id_1 
left join term t2 on t2.id = term_id_2 

См. Демоверсию .
Результаты:

| term_text_1  | term_text_2 |
| ------------ | ----------- |
| hello        | hola        |
| how are you? |             |
1 голос
/ 12 мая 2019

Вы можете использовать LEFT JOIN

SELECT t1.term_text as term_text_1, t2.term_text as term_text_2
FROM dictionary d
LEFT JOIN term t1 ON d.term_id_1 = t1.id
LEFT JOIN term t2 ON d.term_id_2 = t2.id

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...