当我尝试运行此SQL查询时 我收到以下错误:“每个派生表必须有自己的别名”
sql查询:
SELECT * FROM `evenement`
LEFT JOIN `evenementontvanger` ON `evenementontvanger`.`idEvent` = `evenement`.`id`
LEFT JOIN (SELECT `Werknemer`,
GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer` )
WHERE `idEvent`=`evenement`.`id` AND `evenementontvanger`.`idWerknemer`=20
我不能让它运行。 有人可以帮助我PLZ 因为它确实在没有组连接的情况下运行
答案 0 :(得分:2)
SELECT *
FROM `evenement` LEFT JOIN `evenementontvanger`
ON `evenementontvanger`.`idEvent` = `evenement`.`id`
LEFT JOIN (SELECT `Werknemer`,
GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer` ) a --<-missing alias here
on sometablename.somecolumnname = a.somecolumnname
WHERE evenementontvanger.idEvent =evenement.id
AND `evenementontvanger`.`idWerknemer`=20
答案 1 :(得分:1)
您需要为内联选择提供别名,如下所示:
(SELECT `Werknemer`,
GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer` ) AS [tableName]
答案 2 :(得分:1)
只需添加别名:
SELECT *
FROM `evenement` LEFT JOIN
`evenementontvanger
ON `evenementontvanger`.`idEvent` = `evenement`.`id` LEFT JOIN
(SELECT `Werknemer`, GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer`
) w
---------^
on w.`idEvent` = `evenement`.`id`
WHERE `evenementontvanger`.`idWerknemer` = 20;
注意我在on
添加了join
子句。对于所有表,使用表别名,整个查询看起来会更好:
SELECT *
FROM `evenement` e LEFT JOIN
`evenementontvanger eov
ON eov.`idEvent` = e.`id` LEFT JOIN
(SELECT `Werknemer`, GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer` w
) w
---------^
on w.`idEvent` = e.`id`
WHERE eov.`idWerknemer` = 20;
答案 3 :(得分:0)
将其更改为
SELECT *
FROM `evenement` LEFT JOIN `evenementontvanger`
ON `evenementontvanger`.`idEvent` = `evenement`.`id`
LEFT JOIN (SELECT `Werknemer`,
GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer` ) AS subQuery
ON subQuery.XYZ = ...
WHERE `idEvent`=`evenement`.`id`
AND `evenementontvanger`.`idWerknemer`=20
答案 4 :(得分:0)
SELECT `Werknemer`,
GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer`
这个select语句返回一些东西。您尝试将其与其他表格连接,因为您需要为此语句指定一个名称并给出colomn,以便sql知道如何加入它们。它应该看起来像这样。
SELECT *
FROM `evenement` LEFT JOIN `evenementontvanger`
ON `evenementontvanger`.`idEvent` = `evenement`.`id`
LEFT JOIN (SELECT `Werknemer`,
GROUP_CONCAT(`Initialen`) AS `Initials`
FROM `Werknemer` ) as GIVE_AN_NAME on give_an_name.column = 'evenement'.column
WHERE `idEvent`=`evenement`.`id`
AND `evenementontvanger`.`idWerknemer`=20