2013-01-14 4 views
-2

Je me bats pour obtenir la syntaxe correcte pour ce dont j'ai besoin et je me demandais si quelqu'un pouvait aider?Joindre 3 tables avec plusieurs connexions de colonnes

J'ai 3 tables: les utilisateurs, owneditems et shopitems

des utilisateurs que je dois obtenir userid et la ville

De owneditems je dois obtenir userid et Itemid

De shopitems je dois obtenir id et la ville


userid sur owneditems et les utilisateurs seront les mêmes

itemid sur owneditems sera le même que sur id shopitems

ville sur shopitems et les utilisateurs seront les mêmes


Ce que je suis après est de savoir quelle ville les utilisateurs sont et cravate jusqu'à quels articles ils possèdent dans cette ville.

La syntaxe que j'ai essayé d'utiliser était

SELECT users.city, users.id, shopitems.city, shopitems.id, owneditems.itemid, owneditems.userid 
FROM users, shopitems, owneditems 
WHERE users.city = shopitems.city 
    AND owneditems.itemid = shopitems.it 
    AND users.id = owneditems.userid 

Répondre

0

Il ne sait pas exactement ce que vous essayez de faire, mais avez-vous essayé d'utiliser un LEFT JOIN au lieu du INNER JOIN:

select u.city, 
    u.id, 
    s.city, 
    s.id, 
    o.itemid, 
    o.userid 
from users u 
left join owneditems o 
    on u.id = o.userid 
left join shopitems s 
    on u.city = s.sity 
    and o.itemid = s.itemid 
+0

Je pense que je obtenu à la fin SELECT users.city, users.id, shopitems.city, shopitems.id, owneditems.itemid, owneditems.userid D'utilisateurs, shopitems, owneditems OERE users.city = shopitems.city ET owneditems.itemid = shopitems.id ET users.id = owneditems.userid ET users.city = 1 ET users.id = 93074 –

+0

Votre requête fonctionne-t-elle maintenant? – Taryn