【问题标题】:I am using the WHERE clause with OR but i am getting an error我正在使用带 OR 的 WHERE 子句,但出现错误
【发布时间】:2018-03-21 06:13:58
【问题描述】:

我在网上查看并遵循了其他建议,例如使用反引号和使用括号,但我仍然收到此错误。如果有人可以帮助我感谢它。

我的查询:

select p.*, a.street1, a.street2, a.cityeet1, a.street2, a.city, a.name 
from person p 
left join address a 
where (a.name = 'New Jersey' or a.name = 'Connecticut');

错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“where (a.name = 'New Jersey' or a.name = 'Connecticut')' 附近使用正确的语法

【问题讨论】:

  • 在 WHERE 子句中尝试不使用别名,问候。
  • 没有加入ON条件;但这通常不会在 mysql 中停止它。
  • @Uueerdo 即使是 MySQL 也需要 ON 子句进行外连接。
  • 如果你只想要特定的状态,为什么还要使用LEFT JOIN
  • @Barmar,啊,我自己从不忽略它们,除非是偶然的情况;我只是看到很多人得到了交叉产品,从来没有注意它是否只是在 INNER 连接上。

标签: mysql database macos mariadb


【解决方案1】:

您需要输入连接值 - 可能是这样的:

加入地址 a ON (p.address_id = a.id)

select p.*, a.street1, a.street2, a.cityeet1, a.street2, a.city, a.name from person p left join address a ON (p.address_id = a.id) where (a.name = 'New Jersey' or a.name = 'Connecticut');

其中两个字段加入表(表示匹配值)

此外,您的字段名称 (a.cityeet1) 似乎有错字

【讨论】:

  • 谢谢你,我最终没有使用左连接,只是加入了表并使用 where 子句来组合外键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 2017-07-18
  • 2019-10-24
  • 1970-01-01
  • 2020-11-28
  • 2022-01-04
相关资源
最近更新 更多