如何检查然后显示两个表的结果并检查是否存在?

时间:2019-09-24 06:56:13

标签: mysql sql

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 个答案:

答案 0 :(得分:2)

使用left joincase 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

答案 1 :(得分:0)

您使用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

答案 2 :(得分:0)

我建议使用exists

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

我之所以喜欢exists是因为它会自动处理tableB中的重复项。您不必担心查询返回重复的结果。

相关问题