2012-06-04 1 views
1

J'essaie de combiner les résultats produits par deux requêtes sur ma base de données ...Joining résultats de deux requêtes: # 1248 - Chaque table dérivée doit avoir son propre alias

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 

... comme ceci:

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) 

mais je continue à obtenir l'erreur

# 1248 - Chaque table dérivée doit avoir son propre alias

Je ne sais pas où je devrais nommer toutes les tables dérivées, des suggestions?

Répondre

2

Votre table dérivée LEFT OUTER JOIN a besoin d'un alias. Essayez ceci:

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) 

Notez l'alias a sur la dernière ligne.

+0

Cette requête est erronée. COUNT (werkgever_id) et groupe par werkgever_id ?? oO –

+0

@aF Ce n'est pas nécessairement faux, même si je ne l'écrirais pas de cette façon. – RedFilter

+0

vous êtes littéral ^^ c'est une très mauvaise façon de mettre 1 dans la colonne aantalvacatures. –

Questions connexes