mysql - 1052 : Column 'id' in field list is ambiguous

标签 mysql sql database join mysql-error-1052

我有 2 张 table 。 tbl_namestbl_section 都包含 id 字段。我该如何选择 id 字段,因为我总是收到此错误:

1052: Column 'id' in field list is ambiguous

这是我的查询:

SELECT id, name, section
  FROM tbl_names, tbl_section 
 WHERE tbl_names.id = tbl_section.id

我可以选择所有字段并避免错误。但这会浪费性能。我该怎么办?

最佳答案

SQL 支持通过在引用前面加上完整的表名来限定列:

SELECT tbl_names.id, tbl_section.id, name, section
  FROM tbl_names
  JOIN tbl_section ON tbl_section.id = tbl_names.id 

...或表别名:

SELECT n.id, s.id, n.name, s.section
  FROM tbl_names n
  JOIN tbl_section s ON s.id = n.id 

表别名是推荐的方法——为什么输入比你必须的更多?

为什么这些查询看起来不同?

其次,我的答案使用 ANSI-92 JOIN 语法(您的是 ANSI-89)。虽然它们执行相同,但 ANSI-89 语法不支持 OUTER 连接(RIGHT、LEFT、FULL)。 ANSI-89 语法应被视为已弃用,SO 上有很多人不会投票支持 ANSI-89 语法来加强这一点。对于 more information, see this question .

关于mysql - 1052 : Column 'id' in field list is ambiguous,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6638520/

相关文章:

mysqldump : Error 1053: Server shutdown in progress when dumping table

php - SQL 查询,找不到正确的查询

sql - 什么时候多查询而不是多连接更好?

sql - 如何在 LINQ to Entity Framework 中使用 SQL 通配符

sql - 使用 SQL Server 数据库邮件以表格格式发送电子邮件

MySQL `INSERT INTO SELECT` 子句在唯一字段上生成重复条目错误

database - 提高定位行(整数列)的速度

mysql - 从MySQL中的一个结果集中的多个表中获取数据

python - MYSQL 数据插入查询在 Python 中不起作用

java - 如何将多个JCombobox中的选定项插入数据库mysql? ( java )