我有一张桌子:
id | name | ...
1 paul
2 paula
和表b
id | nameId | active
1 1 1
尝试提出一个导致以下结果的查询:
id | name | active
1 paul 1
2 paula
请不要忘记示例数据没有多大意义。
我的问题是我需要一个查询来从表a中选择匹配某些条件的所有记录,并在表B中找到这些结果的某个值(如果存在),并将其添加到结果集中,但不省略那些表a中的结果与表b中没有匹配。
到目前为止,我尝试过这样的事情:SELECT a.id, a.name, b.active FROM a left join b b.nameId=a.id WHERE (something)
但这只给了我第一行。
非常感谢任何帮助!
答案 0 :(得分:2)
您的查询应该提供所需的结果,至少减去神秘的WHERE
子句:
SELECT a.id,
a.name,
COALESCE(CAST(b.active AS CHAR(50)), 'NA') -- replace NULL with NA
FROM a
LEFT JOIN b
ON a.id = b.nameId
-- WHERE (you can add a WHERE clause, but it might filter off rows)