1052:字段列表中的列“ id”不明确-问答-阿里云开发者社区-阿里云

开发者社区> 保持可爱mmm> 正文

1052:字段列表中的列“ id”不明确

2020-05-10 20:06:38 106 1

我有2张桌子。tbl_names并且tbl_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 我可以选择所有字段并避免错误。但这将浪费性能。我该怎么办?

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-10 20:07:40

    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语法。有关更多信息,请参见此问题。

    0 0
66
文章
12595
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载