MySQL объединяет несколько столбцов из нескольких таблиц
Я пытаюсь объединить несколько столбцов из нескольких таблиц, но некоторые из моих данных, кажется, периодически. Каким должен быть мой запрос, чтобы избежать этого?
У меня есть следующие таблицы:
LEGE_ROM
+----------+------------+-----+
| ansattnr | dag | rom |
+----------+------------+-----+
| L102 | 2012-09-23 | b01 |
+----------+------------+-----+
| L100 | 2012-09-12 | k10 |
+----------+------------+-----+
| L100 | 2013-03-05 | k10 |
+----------+------------+-----+
| L100 | 2014-03-02 | k10 |
+----------+------------+-----+
| L100 | 2014-10-15 | K10 |
+----------+------------+-----+
| L100 | 2014-11-03 | k10 |
+----------+------------+-----+
| L102 | 2012-09-12 | k11 |
+----------+------------+-----+
| L100 | 2014-11-10 | k12 |
+----------+------------+-----+
| L110 | 2012-09-13 | k12 |
+----------+------------+-----+
ROM_BEHANDLING
+-----+--------------+
| rom | behandling |
+-----+--------------+
| b01 | kirurgisk |
+-----+--------------+
| k10 | konsultasjon |
+-----+--------------+
| k11 | konsultasjon |
+-----+--------------+
| k12 | konsultasjon |
+-----+--------------+
Желаемая выходная таблица (таблица была отредактирована):
+----------+-----+--------------+
| ansattnr | rom | behandling |
+----------+-----+--------------+
| L100 | k10 | konsultasjon |
+----------+-----+--------------+
| L102 | k11 | konsultasjon |
+----------+-----+--------------+
| L110 | k12 | konsultasjon |
+----------+-----+--------------+
И соединение должно использоваться для достижения желаемой выходной таблицы.
Я попытался использовать следующий запрос:
SELECT lr.ansattnr, lr.rom, rb.behandling
FROM LEGE_ROM lr JOIN ROM_BEHANDLING rb
WHERE rb.behandling='konsultasjon';
1 ответ
Решение
Я думаю, это то, что вы ищете.
Он использует LEFT JOIN
, чтобы он возвращал строку из ROM_BEHANDLING
даже если нет соответствующей строки в LEGE_ROM
,
SELECT lr.ansattnr, lr.rom, rb.behandling
FROM ROM_BEHANDLING rb
INNER JOIN LEGE_ROM lr on lr.rom = rb.rom
GROUP BY lr.rom
HAVING rb.behandling = 'konsultasjon';
Рабочий пример здесь