2011-02-06 7 views
18

Comment préformer deux jointures internes dans une requête?Deux jointures internes MYSQL

Ie: trois tables

facture
Adresse
client

facture a une colonne qui fait référence à un identifiant chez les clients. Il a également une colonne qui fait référence à une adresse. J'ai besoin d'obtenir à la fois le nom du client de la table correspondante et l'adresse de la table correspondante. Comment pourrais-je INNER JOIN les deux tables?

Je vais ajouter quelques détails ...
facture a des lignes adresse (références Identifiant de l'adresse), client (références id client), id et notes client a des lignes prenom, Last_Name adresse a des lignes STREET_NAME et la ville

J'ai besoin de tirer

+0

Besoin de plus de données. –

Répondre

29

Vous pouvez avoir autant de clauses JOIN que vous le souhaitez dans la requête. Chacun a une clause ON dans laquelle vous spécifiez les colonnes liées entre les tables jointes.

SELECT 
    columns 
FROM 
    invoice 
INNER JOIN 
    address 
ON 
    join_condition 
INNER JOIN 
    client 
ON 
    join_condition 
+0

Je n'étais pas au courant de cela. Bon à savoir. Merci! – Yoshiyahu

8

Quelque chose comme:

SELECT 
    c.*, i.*, a.* 
FROM 
    invoices i 
INNER JOIN 
    client c 
ON 
    i.clientid = c.clientid 
INNER JOIN 
    address a 
ON 
    a.clientid = c.clientid 
WHERE 
    i.id = 21 

ne pas oublier que vous sélectionnez uniquement les champs dont vous avez besoin, pas * (tous).

+0

Est-ce que cela fonctionnera sans seconde ON? – Yoshiyahu

+0

Oups, j'ai oublié d'ajouter ça. Voir éditer. – Prisoner

+0

Cela a fonctionné, merci –

Questions connexes