我如何联接不依赖于LEFT或RIGHT联接的多个表
例:
t1
id | date
-----------
NULL NULL
t2
id | value
------------
1 | bla
SELECT date,value
FROM t2 LEFT JOIN t1
ON t1.id = t2.id where t2.id = 1
-选择还可以
与右联接相同的查询返回空值...
最佳答案
SELECT `date`, `value` FROM t2 FULL OUTER JOIN t1 ON t1.id = t2.id
编辑:这将返回所有记录,即使这些联接字段上没有匹配项。抱歉,这会给您语法错误。请在下面查看我的修改。
如果只需要匹配项,请使用
inner join
:SELECT `date`, `value` FROM t2 INNER JOIN t1 ON t1.id = t2.id
编辑:MySQL中没有
FULL OUTER JOIN
。您将不得不使用UNION
模拟它,并将LEFT
和RIGHT
JOIN
组合:SELECT `date`, `value` FROM t2 LEFT JOIN t1 ON t1.id = t2.id
UNION
SELECT `date`, `value` FROM t2 RIGHT JOIN t1 ON t1.id = t2.id
这还将返回您的
NULL
值,但它们将不匹配,如NULL != NULL