Как проверить, а затем отобразить результат двух таблиц и проверить, существует или не существует? - PullRequest
0 голосов
/ 24 сентября 2019
Tabel_A
---------
id  name
1   Kursi
2   Roda
3   Gigi

Tabel_B
---------
id  id_tabel_A
1   2

Result
--------
name    Status
Kursi   0
Roda    1
Gigi    0

Запрос результата: ……………………?

Ответы [ 3 ]

2 голосов
/ 24 сентября 2019

используйте left join и case when

 select name, case when b.id_tabel_A is null then 0 else 1 end as status
 from tableA a left join tableB b on a.id=b.id_tabel_A
0 голосов
/ 24 сентября 2019

Я рекомендую использовать exists:

select a.name, 
       (exists (select 1
                from tableB b 
                where a.id = b.id_tabel_A
               )
       ) as status
from tableA a; 

Причина, по которой я предпочитаю exists, заключается в том, что он автоматически обрабатывает дубликаты в tableB.Вам не нужно беспокоиться о запросе, возвращающем повторяющиеся результаты.

0 голосов
/ 24 сентября 2019

Вы применяете синтаксис IF

 SELECT a.name, 
    IF(
        (
            SELECT count(b.id_tabel_A)
            from Tabel_B as b
            WHERE b.id_tabel_A = a.id -- connect
        ) > 0
     , "YES", "NO")  as status
 from Tabel_A as a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...