全外连接中的语法错误?

时间:2018-02-15 02:33:28

标签: mysql sql database

我有一个查询,我正在使用完整的外连接。但在某些情况下, 它给了我一个语法错误。 这可能是什么原因?我在查询中看不到任何错误代码。 enter image description here

2 个答案:

答案 0 :(得分:2)

MySQL不支持完全外连接,但您可以将其模拟为左右连接查询之间的联合:

SELECT * FROM pbsdev3.item t1
LEFT JOIN pbsdev3.item_ledger_entry t2 ON t1.No_ = t2.Item_No_
UNION ALL
SELECT * FROM pbsdev3.item t1
RIGHT JOIN pbsdev3.item_ledger_entry t2 ON t1.No_ = t2.Item_No_
WHERE t1.No_ IS NULL

请注意,一般情况下,如果您发现自己经常进行完全外部联接,则可能意味着您的密钥和数据模型没有很好地定义。 MySQL不支持完全连接的一个原因可能是你不应该使用它。

答案 1 :(得分:0)

<form>在MySQL中非常痛苦。我要注意的第一件事是它不应该被需要。这些项目应该在两个表格中匹配,因此Full outer joininner join就足够了:

left join

如果您确实需要SELECT i.*, ile.* FROM pbsdev3.item i LEFT JOIN pbsdev3.item_ledger_entry ile ON i.No_ = ile.Item_No_; ,请将所有项目聚集在一起并使用full outer join

left join