我的内部连接不起作用 未知列
Posted
技术标签:
【中文标题】我的内部连接不起作用 未知列【英文标题】:My inner join doesn't work Unknown column 【发布时间】:2014-04-22 18:47:21 【问题描述】:我正在尝试进行内部连接,但是当我在 Sql 中执行此操作时,它会显示:“on 子句”中的未知列“evenement.id”。我怎样才能做到这一点?
SQL 连接:
SELECT *
FROM `evenement` INNER JOIN
`evenementontvanger`
ON `evenement.id` = `evenementontvanger.idEvent`
ORDER BY `id`
我的桌子是->
晚上:
id
title
start
startdate
starttime
end
endtime
enddate
url
allDay
description
color
evenementontvanger: ID idEvent idWerknemer idProject 爱德克兰特 idTaak
【问题讨论】:
【参考方案1】:您需要单独引用每个标识符;
ON `evenement`.`id` = `evenementontvanger`.`idEvent`
【讨论】:
非常感谢您的回答:)【参考方案2】:问题是你在反引号之间有evenement.id
。这使它成为单个标识符,而不是两个由.
连接的标识符。以下修复了查询并添加了表别名并修复了下一个问题,即order by
中的不明确列:
SELECT *
FROM evenement e INNER JOIN
evenementontvanger ev
ON e.id = e.idEvent
ORDER BY e.id;
【讨论】:
【参考方案3】:您需要在每个标识符周围加上刻度线。如果将它们放在一个组合标识符周围,它会将其解释为单个标识符,即没有名为 evenement.id
的字段。
SELECT *
FROM `evenement` INNER JOIN
`evenementontvanger`
ON `evenement`.`id` = `evenementontvanger`.`idEvent`
ORDER BY `id`
【讨论】:
【参考方案4】:ID 字段将被设置两次,您需要指定要检索的字段,因为它们的名称有冲突
SELECT `evenement`.`id`, `evenementontvanger`.`id`
FROM `evenement` INNER JOIN
`evenementontvanger`
ON `evenement`.`id` = `evenementontvanger`.`idEvent`
ORDER BY `evenement`.`id`
【讨论】:
不确定这是否不正确,因为它正在被标记下来?【参考方案5】:您需要在两个表中具有相同的列名才能应用内连接。尝试重命名任一列名。在http://www.w3schools.com/sql/sql_join_inner.asp 上查找示例
【讨论】:
任何类型的连接都不需要相同的列名。内连接取决于兼容的数据类型和(在等连接的情况下)匹配值,而不是列名。以上是关于我的内部连接不起作用 未知列的主要内容,如果未能解决你的问题,请参考以下文章