我正在使用Access 2007创建一个SQL查询来连接两个表。我能够做到这一点,但后来我没有第二个表中的列为NULL的行;我只有第二个表中匹配信息的行。我试图做LEFT JOIN但是Access不喜欢这个。相反,我试图创建一个更好的'加入/加'我的查询(见下文),但现在我得到一个“FROM子句中的语法错误”。你有什么想法我做错了吗?
SELECT *
FROM dbo_table1 AS t1
JOIN dbo_table2 AS t2
ON (
(t1.id = t2.id) // where the two ids match so the info in table 2 match with table 1
OR
((SELECT COUNT(*) FROM dbo_table2 AS t3 WHERE t1.id = t3.id)=0) // there is no match but I want the row with NULL for the values from the second table
);
答案 0 :(得分:0)
如果你想要dbo_table1中的所有行,无论dbo_table2中是否有匹配的行,都要使用LEFT JOIN。访问应该接受这个:
SELECT *
FROM
dbo_table1 AS t1
LEFT JOIN dbo_table2 AS t2
ON t1.id = t2.id;
答案 1 :(得分:0)
您可以使用WHERE语句进行外部/交叉连接(a.id = b.id或b.id为null)。
或者是UNION,第一个是a.id = b.id,第二个是b.id为空。
(视您的具体要求而定)