每个派生表必须具有自己的副本

时间:2013-11-22 01:13:19

标签: mysql sql

StackOverflow上有关于这个主题的无数问题,但不知怎的,我没有理解这个错误信息的概念。我有以下查询:

SELECT COUNT(*) as `num` FROM(SELECT bedrijfsnaam FROM profiles LEFT JOIN profile_subrubriek ON profiles.ID=profile_subrubriek.profile_id LEFT JOIN rubrieken ON profile_subrubriek.subrubriek_id=rubrieken.ID WHERE rubrieken.rubriek = 'Aannemersbedrijven' UNION SELECT bedrijfsnaam FROM profiles LEFT JOIN profile_subrubriek ON profiles.ID=profile_subrubriek.profile_id LEFT JOIN rubrieken ON profile_subrubriek.subrubriek_id=rubrieken.ID WHERE profiles.hoofdrubriek = 'Aannemersbedrijven') 

在阅读了其他一些已回答的问题之后,我尝试了以下内容:

SELECT COUNT(*) as `num` FROM(SELECT bedrijfsnaam AS profielenaantal1 FROM profiles LEFT JOIN profile_subrubriek ON profiles.ID=profile_subrubriek.profile_id LEFT JOIN rubrieken ON profile_subrubriek.subrubriek_id=rubrieken.ID WHERE rubrieken.rubriek = 'Aannemersbedrijven' UNION SELECT bedrijfsnaam  AS profielenaantal2 FROM profiles LEFT JOIN profile_subrubriek ON profiles.ID=profile_subrubriek.profile_id LEFT JOIN rubrieken ON profile_subrubriek.subrubriek_id=rubrieken.ID WHERE profiles.hoofdrubriek = 'Aannemersbedrijven') 

但没有运气。我错过了什么? 谢谢!

1 个答案:

答案 0 :(得分:1)

您缺少表别名和太复杂的查询。删除unnessearly部分。 我假设您的错误消息为Every derived table must have its own alias,(找不到it's own duplicate

SELECT
  COUNT(*) as `num` 
FROM
(
    ....
) AS tbl_alias;