2017-07-28 3 views
0

J'ai une table utilisateur qui a beaucoup de propriétés. Table utilisateur ayant une relation à plusieurs. J'essaie de sélectionner les utilisateurs qui ont juste une propriété dans les propriétés tableauUne requête beaucoup où beaucoup a un enregistrement

select *, count(p.account_id) as c 
form accounts as a 
left join properties as p on a.account_id = p.account_id 
group by p.account_id 
having c = 1 

mais cela ne semble fonctionner

Répondre

0
SELECT *, count(*) as num from 
accounts as a INNER JOIN properties as p 
ON a.account_id = p.account_id 
group by p.account_id 
having num=1 
+0

J'ai accepté mais mon problème semble être lié quand je fais un où sur p.table, par exemple l'année (p.from) = 2017 – deroccha

1

Vous pouvez également faire une deuxième demande:

select * 
from (
    SELECT *, p.account_id , count(*) as num 
    from accounts as a 
    INNER JOIN properties as p ON a.account_id = p.account_id 
    group by p.account_id 
) query 
where query.num = 1 
+0

merci pour les retours ce produit pour moi dupliquer account_id – deroccha

+0

en fait vous donnez une bonne idée wit h ceci pour réparer mon problème. Merci – deroccha

+0

Ensuite, je suis heureux que cela a aidé. Vous avez trouvé la solution? – JBO