where 子句中的列不明确 - 这是啥意思?
Posted
技术标签:
【中文标题】where 子句中的列不明确 - 这是啥意思?【英文标题】:Column in where clause is ambiguous - What does that mean?where 子句中的列不明确 - 这是什么意思? 【发布时间】:2011-08-29 01:32:31 【问题描述】:我在 mysql 中遇到了 join 子句的这个错误,但我对 JOIN
参数还很陌生,我不确定这意味着什么。有人可以帮忙吗?
where 子句中的列 'id' 不明确
SELECT * FROM (`venues`)
JOIN `venues_meta` ON `venues_meta`.`venue_id` = `venues`.`id`
WHERE `id` = '12'
【问题讨论】:
【参考方案1】:您需要完全限定id
,因为venues
和venues_meta
都有一个名为id
的列。
【讨论】:
@Chris Morgan 谢谢它也对我有帮助 所以只是为了让其他人清楚......它需要成为 WHERE 场地.id = 12【参考方案2】:我想你想要:
SELECT * FROM `venues` v, `venues_meta` m where v.venue_id = m.id AND m.id = '12'
(但请确保您想要的是 v.venue_id 而不是 v.id)
【讨论】:
如果您尝试将venues
别名为v
并将venues_meta
别名为m
,则您的逗号不太正确。【参考方案3】:
试试这个代码
SELECT v.*
FROM `venues` AS `v`
INNER JOIN `venues_meta` AS `vm` ON `vm`.`venue_id` = `v`.`id`
WHERE `v`.`id` = '12'
【讨论】:
请多解释一下您的代码以及您的解决方案是什么 我为代码紧凑性创建了一个别名。并指定哪个表显式选择id
列以上是关于where 子句中的列不明确 - 这是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 'tenant_id' 不明确