requête utilisant les jointures et des UDT
Bonjour,
je souhaite faire la requête suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| SELECT cl.id AS id,
cl.companyname AS companyname,
cl.tvanumber AS tvanumber,
cl.trademark AS trademark,
cl.address AS address, -- UDT
cl.contactname1 AS contactname1,
cl.contactname2 AS contactname2,
cl.mobile AS mobile, -- UDT
cl.phone AS phone, -- UDT
cl.fax AS fax, -- UDT
cl.country AS country,
COUNT (co.id) AS nbcomputers
FROM clients AS cl
LEFT OUTER JOIN establishments es ON cl.id = es.client
LEFT OUTER JOIN computers co ON es.id = co.establishment
WHERE cl.id = ?
GROUP BY
cl.id,
cl.companyname,
cl.tvanumber,
cl.trademark,
cl.address,
cl.contactname1,
cl.contactname2,
cl.mobile,
cl.phone,
cl.fax,
cl.country; |
Elle est sensée me renvoyer toutes les informations du client citées, y compris l'adresse (qui est un UDT de type AddressType) et les mobile, phone et fax (qui sont des UDT de type PhoneType).
Je sais que, vu que j'utilise un COUNT() dans le select, je dois faire un group by sur tous les autres champs demandés, MAIS si je fais ça, j'ai une erreur comme quoi PostGreSQL ne sait pas comparer mes champs UDT.
De plus, je n'ai jamais utilisé ce type de jointures et s'il y a une erreur dedans, pourriez vous me la signaler ?
Comment résoudre cela ? Un énorme merci si vous réussissez à m'aider ;)
Olivier