跨表验证数据是否存在
Verifying existence of data accross tables
假设我有一个包含以下两个表的数据库:
Table_A Table_B
id val_A
val ...
...
现在我需要在 Table A
上 SELECT
执行以下操作:
SELECT id, val, ..., isInB FROM Table_A WHERE ....
其中...是我需要的 Table_A
中的任何其他字段,isInB 将是 1 或 0,具体取决于 Table_A.val
是否存在于 Table_B.val_A
[=17 中=]
这可以做到吗?
您只需 LEFT JOIN
两个表:
SELECT ta.id,
ta.val,
CASE WHEN tb.val_A IS NULL THEN 0 ELSE 1 END AS isInB
FROM table_A ta
LEFT JOIN table_B tb ON ta.val = tb.val_A
试试这个
SELECT Table_A.id, Table_A.val, IF(table_B.val_A IS NULL, 0, 1) as isInB
FROM
Table_A
LEFT OUTER JOIN Table_B on Table_A.val = Table_B.val_A
假设我有一个包含以下两个表的数据库:
Table_A Table_B
id val_A
val ...
...
现在我需要在 Table A
上 SELECT
执行以下操作:
SELECT id, val, ..., isInB FROM Table_A WHERE ....
其中...是我需要的 Table_A
中的任何其他字段,isInB 将是 1 或 0,具体取决于 Table_A.val
是否存在于 Table_B.val_A
[=17 中=]
这可以做到吗?
您只需 LEFT JOIN
两个表:
SELECT ta.id,
ta.val,
CASE WHEN tb.val_A IS NULL THEN 0 ELSE 1 END AS isInB
FROM table_A ta
LEFT JOIN table_B tb ON ta.val = tb.val_A
试试这个
SELECT Table_A.id, Table_A.val, IF(table_B.val_A IS NULL, 0, 1) as isInB
FROM
Table_A
LEFT OUTER JOIN Table_B on Table_A.val = Table_B.val_A