sqlite3的
我有两个表,Table1和Table2。
这两个表都有一个名为Name的列。
我想查询Table2并返回Name列。另外,我想返回一个包含值1或0的列,具体取决于Table1中的任何行是否也包含相同的Name值。
最有效的方法是什么?
我正在寻找类似的东西:
SELECT
Name, IF EXISTS (SELECT * FROM Table1 WHERE Table1.Name = Table2.Name) 1 ELSE 0
FROM
Table2
答案 0 :(得分:1)
抱歉,我对SQLite不是很熟悉,但这应该适合你。诀窍是在连接表上进行左外连接和比较。
SELECT
Table2.Name,
CASE WHEN Table1.Name IS NOT NULL THEN 1 ELSE 0 END
FROM
Table2
LEFT OUTER JOIN
Table1 ON Table1.Name = Table2.Name
我不太确定CASE
语法是最好的,但如果你更熟悉SQLite中的条件,你可以清理那部分。