【发布时间】:2014-02-03 02:04:19
【问题描述】:
在某些情况下,我需要将四张表合并为一张,但我只能将其中三张合并,即使我在第四张表上所做的一切都完全相同。有人可以帮我解决这个问题吗?如果我删除最后一段,它会起作用,但如果我把它留在那里,它会说“JOIN 操作中的语法错误”。
SELECT Leidinys, ISSN, Pobudis
FROM ((Leidinio_ID_Leidinys
LEFT JOIN (Leidinio_ID_ISSN_ID
LEFT JOIN ISSN_ID_ISSN
ON Leidinio_ID_ISSN_ID.ISSN_ID = ISSN_ID_ISSN.ISSN_ID)
ON (Leidinio_ID_Leidinys.Leidinio_ID = Leidinio_ID_ISSN_ID.Leidinio_ID))
LEFT JOIN ((Leidinio_ID_Pobudzio_ID
LEFT JOIN Pobudzio_ID_Pobudis
ON Leidinio_ID_Pobudzio_ID.Pobudzio_ID = Pobudzio_ID_Pobudis.Pobudzio_ID))
ON (Leidinio_ID_Leidinys.Leidinio_ID = Leidinio_ID_Pobudzio_ID.Leidinio_ID))
LEFT JOIN ((Leidinio_ID_Metai_ID
LEFT JOIN Metai_ID_Prieigos_Metai
ON Leidinio_ID_Metai_ID.Metai_ID = Metai_ID_Prieigos_Metai.Metai_ID)
ON (Leidinio_ID_Leidinys.Leidinio_ID = Leidinio_ID_Metai_ID.Leidinio_ID))
【问题讨论】:
-
最奇怪的加入我一开始还以为是 ORM 的东西。
-
如果您格式化您的代码,您可能会发现一些导致问题的额外括号。我不确定你为什么要使用括号,它们不是必需的。
-
codinghorror.com/blog/2007/10/… 这样做并在 ON 条件后添加另一个 JOIN 等。
-
@user3195619 你以为这不依赖于RDBMS,但为什么拒绝分享呢?它有助于给你一个更好的答案
-
@CRAFTYDBA op 没有使用旧式连接,她/他只是奇怪地将它们括在括号中。但是那里没有
*=或=*
标签: mysql sql sql-server join