Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在sql中使用SELECT和JOIN组合不同表的不同列?_Mysql_Sql - Fatal编程技术网

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;