1

データベースで 2 つのクエリによって生成された結果を結合しようとしています...

q1:

SELECT * FROM werkgevers JOIN werkgevers_branches ON werkgevers.werkgever_id = werkgevers_branches.werkgever_id JOIN plaatsen ON werkgevers.plaats_id = plaatsen.plaats_id JOIN branches ON werkgevers_branches.branche_id = branches.branche_id GROUP BY werkgevers_branches.werkgever_id

q2:

SELECT werkgever_id, COUNT(werkgever_id) AS aantalvacatures FROM vacatures GROUP BY werkgever_id

... このような:

SELECT * FROM (
SELECT * FROM werkgevers JOIN werkgevers_branches ON werkgevers.werkgever_id = werkgevers_branches.werkgever_id JOIN plaatsen ON werkgevers.plaats_id = plaatsen.plaats_id JOIN branches ON werkgevers_branches.branche_id = branches.branche_id GROUP BY werkgevers_branches.werkgever_id
) AS tbl1
LEFT OUTER JOIN 
(
    SELECT * FROM (
        SELECT werkgever_id, COUNT(werkgever_id) AS aantalvacatures FROM vacatures GROUP BY werkgever_id
    ) AS tbl2
)
USING (werkgever_id)

しかし、私はエラーが発生し続けます

#1248 - すべての派生テーブルには独自のエイリアスが必要です

派生テーブルに名前を付ける場所がわかりません。何か提案はありますか?

4

1 に答える 1

2

LEFT OUTER JOIN 派生テーブルにはエイリアスが必要です。これを試して:

select *
from (
    select *
    from werkgevers
    join werkgevers_branches on werkgevers.werkgever_id = werkgevers_branches.werkgever_id
    join plaatsen on werkgevers.plaats_id = plaatsen.plaats_id
    join branches on werkgevers_branches.branche_id = branches.branche_id
    group by werkgevers_branches.werkgever_id
    ) as tbl1
left outer join (
    select *
    from (
        select werkgever_id,
            COUNT(werkgever_id) as aantalvacatures
        from vacatures
        group by werkgever_id
        ) as tbl2
    ) a USING (werkgever_id)

a最後の行のエイリアスに注意してください。

于 2012-06-04T14:58:02.007 に答える