我试图做一个内心连接,但是当我在Sql中这样做时,它说:未知列' evenement.id'在条款'。我怎样才能做到这一点?
SQL join:
SELECT *
FROM `evenement` INNER JOIN
`evenementontvanger`
ON `evenement.id` = `evenementontvanger.idEvent`
ORDER BY `id`
我的表格是>
Evenement:
id
title
start
startdate
starttime
end
endtime
enddate
url
allDay
description
color
evenementontvanger: ID idEvent idWerknemer idProject idKlant idTaak
答案 0 :(得分:5)
您需要单独引用每个标识符;
ON `evenement`.`id` = `evenementontvanger`.`idEvent`
答案 1 :(得分:2)
问题是你在反叛之间有evenement.id
。这使它成为单个标识符,而不是由.
连接的两个标识符。以下修复了查询并添加了表别名并修复了下一个问题,即order by
中的含糊不清的列:
SELECT *
FROM evenement e INNER JOIN
evenementontvanger ev
ON e.id = e.idEvent
ORDER BY e.id;
答案 2 :(得分:1)
您需要每个标识符周围的刻度线。如果将它们放在组合标识符周围,它会将其解释为单个标识符,即没有名为evenement.id
的字段。
SELECT *
FROM `evenement` INNER JOIN
`evenementontvanger`
ON `evenement`.`id` = `evenementontvanger`.`idEvent`
ORDER BY `id`
答案 3 :(得分:-1)
ID字段将设置两次,您需要指定要检索的字段,因为它们具有冲突的名称
SELECT `evenement`.`id`, `evenementontvanger`.`id`
FROM `evenement` INNER JOIN
`evenementontvanger`
ON `evenement`.`id` = `evenementontvanger`.`idEvent`
ORDER BY `evenement`.`id`
答案 4 :(得分:-1)
您需要在两个表中使用相同的列名才能应用内部联接。尝试重命名任一列名称。在http://www.w3schools.com/sql/sql_join_inner.asp
上查看示例