Mysql 我无法在SQL上联接多个表

Mysql 我无法在SQL上联接多个表,mysql,sql,sql-server,join,Mysql,Sql,Sql Server,Join,在某些条件下,我需要将四个表合并到一个表中,但我只能将其中三个表合并,即使我在第四个表中的操作完全相同。有人能帮我解决这个问题吗?如果我删除最后一段,它会工作,但如果我把它留在那里,它会在连接操作中显示语法错误 SELECT Leidinys, ISSN, Pobudis FROM ((Leidinio_ID_Leidinys LEFT JOIN (Leidinio_ID_ISSN_ID LEFT JOIN ISSN_ID_ISSN

在某些条件下,我需要将四个表合并到一个表中,但我只能将其中三个表合并,即使我在第四个表中的操作完全相同。有人能帮我解决这个问题吗?如果我删除最后一段,它会工作,但如果我把它留在那里,它会在连接操作中显示语法错误

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))

我打赌你的父母不同步了

您需要first FROM之后的第一个paren来包含所有3个left joins子句,因此您需要 1复制到剪贴板,然后删除最后一个左join子句 2将复制的代码插入最后一个参数前面


这是我根据提供的信息做出的最佳猜测,祝你好运,这不是一个完整的答案,而是一个指针。表名彼此非常相似,而且它们不是英文的,所以有点困难,但你需要做一些事情

一次连接两个表,然后在ON子句中提到它们的连接条件

SELECT Leidinys, ISSN, Pobudis
FROM Leidinio_ID_Leidinys LEFT JOIN Leidinio_ID_ISSN_ID    --<-- Two Table in JOIN 
ON Leidinio_ID_Leidinys.Leidinio_ID = Leidinio_ID_ISSN_ID.Leidinio_ID  --<-- Condition on you want to join these table
LEFT JOIN ISSN_ID_ISSN                                 --<-- result set on 1st join, joins with this table
ON  Leidinio_ID_ISSN_ID.ISSN_ID = ISSN_ID_ISSN.ISSN_ID  --<-- condition on which you want to join the result set and this table ... and so on ....
LEFT JOIN Leidinio_ID_Pobudzio_ID 
ON Leidinio_ID_Leidinys.Leidinio_ID = Leidinio_ID_Pobudzio_ID.Leidinio_ID
LEFT JOIN  Pobudzio_ID_Pobudis 
ON Leidinio_ID_Pobudzio_ID.Pobudzio_ID = Pobudzio_ID_Pobudis.Pobudzio_ID
.
...... Join with other tables along with their joining conditions and so on.....

然后,您还需要在Select语句中提到TableName.Column name,因为您在Select语句中提到的列名存在于多个表中,您需要告诉sql server您需要从哪个表中使用该特定列

最奇怪的连接一开始我认为它是ORM的东西。如果你格式化你的代码,你可能会发现一些额外的括号导致了这个问题。我不太清楚为什么要用括号,它们是不需要的。这样做,并在条件满足后添加另一个连接等@user3195619您认为这不取决于RDBMS,但为什么拒绝共享它?这有助于为您提供更好的连接answer@CRAFTYDBAop并没有使用老式的连接,s/他只是奇怪地将它们括在括号中。但是我的父母不同步?我想这就是他们离婚的原因。或者,去掉最后一行的第一个左括号和最后一个右括号。但是,我认为值得一提的是,这种语法在MySQL或SQL Server中都不需要括号。至少在视图方面,MySQL在幕后添加了paren,因此如果您从现有视图检索代码开始,您要么需要使用它们,要么浪费时间?删除它们只是为了让mysql在应用定义viewAh的代码后再次添加它们,我不知道这一点。但是,如果它是一个视图定义,并且您删除了所有括号并更新了视图,MySQL至少会正确地添加它们,不是吗?不需要猜测你或你之前的某个人把事情搞砸了——所以,在某种程度上,也有一些解决办法。