Mysql 如何检查然后显示两个表的结果并检查是否存在?
查询结果:使用Mysql 如何检查然后显示两个表的结果并检查是否存在?,mysql,sql,Mysql,Sql,查询结果:使用left join和case when 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 当 Tabel_A --------- id name 1 Kursi 2 Roda 3 Gigi Tabel_B
left join
和case when
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
当
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
您可以应用IF语法
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
您可以应用IF语法
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
我建议使用
exists
:
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
我更喜欢
存在的原因是它会自动处理表B中的重复项。您不必担心查询返回重复的结果。我建议使用exists
:
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
我更喜欢存在的原因是它会自动处理表B中的重复项。您不必担心查询返回重复的结果。提示:使用左连接提示:使用左连接