我对两个表中的select命令有问题。
所以我有了表1:
table1_id = int pk;
table1_name;
table1_surname;
table1_age;
table1_address;
table1_city;
表2:
table2_id int pk
table1_id int fk references table1.table1_id;
table3_id;
table2_description;
当我编写下面的select语句时,我得到了含糊不清的列名table1.table1\u name错误:
SELECT table2.table2_id, table2.table1_id, table1.table1_name, table2.table2_description
from table1,
table2 inner join
table1
on table2.table1_id = table1.table1_id;
老实说,我不明白这是怎么回事?
3条答案
按热度按时间ncgqoxb01#
删除
table1,
就在之后from
(混合了老式“逗号”和现代连接语法)使用方法如下:
fivyi3re2#
不要在句子中使用逗号
FROM
条款。始终使用适当的、明确的JOIN
语法:查询的问题是有两个引用
table1
因为逗号。你已经两次提到这张table了。因此,当您引用列时,引擎不知道您所指的是什么。您的版本相当于:w8biq8rn3#
如果我理解正确的话,你在下线有问题
在上面的代码中,您使用的是
CROSS JOIN
介于table2
以及table1
这在你的情况下是不需要的。更改您的查询,如下所示。