Mysql 如何在sql中使用SELECT和JOIN组合不同表的不同列?
我有三个表Mysql 如何在sql中使用SELECT和JOIN组合不同表的不同列?,mysql,sql,Mysql,Sql,我有三个表表1、表2和表3。在每个表中,我都有列primaryKey(unsigned int)和name。我试图使用SELECT语句进行查询,并获取包含表1的名称、表2的名称和表3的名称的表。到目前为止,我有以下代码: SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name from Table1 INNER JOIN table2 on table1.primaryKey
表1、表2和表3
。在每个表中,我都有列primaryKey(unsigned int)和name
。我试图使用SELECT
语句进行查询,并获取包含表1的名称、表2的名称和表3的名称的表。到目前为止,我有以下代码:
SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name
from Table1 INNER JOIN table2 on
table1.primaryKey = table2.primaryKey;
我得到这个错误:
Error 1054 (42S22): Unknown column 'Table3.name' in 'field list'
我可能有语法错误,但我似乎无法理解它!我有两张表要处理,但没有3张:(非常感谢您的帮助!!您忘了在“FROM”子句中列出表3:
原因是您没有加入
表3
。您只加入表1和表2
SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name
from Table1 INNER JOIN table2 on
table1.primaryKey = table2.primaryKey
INNER JOIN table3 on table2.primaryKey = table3.primaryKey;
您还必须对表3进行一次内部联接
SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name
from table1 INNER JOIN table2 on
table1.primaryKey = table2.primaryKey INNER JOIN table3 on table1.primaryKey = table3.primaryKey;
您忘记了select查询中的表3
SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name
FROM Table1 INNER JOIN Table2 on Table1.primaryKey = Table2.primaryKey
INNER JOIN Table3 on Table1.primaryKey = Table3.primaryKey;
或
SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name
FROM Table1, Table2, Table3 WHERE table1.primaryKey = table2.primaryKey AND
table1.primaryKey = t3.primaryKey;
希望它能对您有所帮助。from子句中没有表3。删除表3.name或在join PART中添加表3第一次查询的语法无效,您不应该建议有人使用ANSI之前的语法。很抱歉键入错误。我现在更正了它。我知道我不知道语法是什么。这让我更明智e现在谢谢!@user2921302您只需添加另一个这样的表。如果您的主键都相同,则不需要指定所有3个“on”子句,只需指定2个。
SELECT Table1.name as Table1Name, Table2.name as Table2Name, Table3.name as Table3Name
FROM Table1, Table2, Table3 WHERE table1.primaryKey = table2.primaryKey AND
table1.primaryKey = t3.primaryKey;