我的内部联接不起作用

时间:2014-03-17 14:06:34

标签: mysql sql join phpmyadmin

我试图做一个内心连接,但是当我在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

5 个答案:

答案 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

上查看示例