Соедините 2 таблицы и создайте новую строку, показывающую, существует ли таблица 2 в таблице 1 - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть эти две таблицы

Таблица 1

+-----------+----------+
| support_id| Name     |
+-----------+----------+
| 1         | Name 1   |
| 2         | Name 2   |
+-----------+----------+ 

Таблица 2

+-----------+----------+
| school_id | support_id|
+-----------+----------+
| 2314      | 1        |
+-----------+----------+ 

Желание вывода

+-----------+----------+------------+
| school_id |support_id|     has    |
+-----------+----------+------------+
| 2314      | 1        | Yes        |
| 2314      | 2        | No         |
+-----------+----------+------------+

Как я могудобавить третью строку, сообщающую, если таблица 2 находится в таблице 1?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Я бы использовал левое соединение, а затем выражение case для форматирования результатов:

SELECT    t2.*, CASE WHEN t1.support_id IS NOT NULL THEN 'Yes' ELSE 'No' END
FROM      t2
LEFT JOIN t1 ON t2.support_id = t1.support_id
0 голосов
/ 03 апреля 2019

Что вы подразумеваете под table1 "is" в table2?Поле support_id такое же, как support_id в таблице 2?Или поле или school_id одинаковы?

Вам необходимо, чтобы поле было одинаковым в обеих таблицах, чтобы установить соединение (внешний ключ), объединить и соединить обе таблицы.

Считая support_id ключом foreigh (значение, разделяемое между обеими таблицами), вы можете использовать этот выбор:

   SELECT school_id, IF(support_id is not null, "Yes", "No") as Has
   FROM table1 LEFT JOIN table2
   ON table1.support_id = table2.support_id;
...