【问题标题】:#1052 - Column 'bookingId' in where clause is ambiguous#1052 - where 子句中的列“bookingId”不明确
【发布时间】:2019-11-07 09:58:20
【问题描述】:

我想加入两张桌子,但我遇到了问题

这是我的 SQL 语法

select * from booking as b,
booking_detail as bd 
WHERE bookingId = 9 AND b.bookingId = bd.bookingId

这是我的错误:

# 1052 - where 子句中的列“bookingId”不明确

【问题讨论】:

  • 一个有用的经验法则:永远不要使用邪恶的SELECT *。相反,始终命名并限定您实际想要返回的列。然后,还要命名并限定您希望加入的列。
  • 今日提示:始终使用现代、明确的JOIN 语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。

标签: mysql sql mysql-error-1052


【解决方案1】:

b.bookingId = 9 使用别名

select * from booking as b join 
booking_detail as bd on b.bookingId = bd.bookingId
WHERE b.bookingId = 9 

【讨论】:

    【解决方案2】:

    对 bookinid 列使用连接和别名,因为该列在两个表中都可用

    select * from booking as b join
     booking_detail as bd 
     on b.bookingId = bd.bookingId
      WHERE b.bookingId = 9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 2020-10-13
      • 2019-04-14
      • 1970-01-01
      • 2021-10-11
      相关资源
      最近更新 更多