Je veux choisir parmi deux tables (a, b) qui sont liées les unes aux autres par l'intermédiaire de la troisième table (c), mais la table a a une key primaire composite

Je veux choisir parmi deux tables (clients, machines) qui sont liées les unes aux autres via la troisième table (commands), mais la table a a une key primaire composite

Les clients de table ont une key primaire

id 

Les machines de table ont une key primaire composite avec ces deux colonnes:

 machinId machineModel 

Et ces deux sont liés à des commands de table

 Id(fk) machine(fk) machintype 

Je veux sélectionner parmi les clients et les machines toutes les machines qu'une personne a achetées (commands)

Ma command select est

 Select c.name, c.land, m.namemachin from orders o inner join customers c on c.id = o.id inner join machins m on o.machine = m.Id where c.name = 'karl' and m.machine = o.machintype 

Mais ça ne marche pas

Pouvez-vous m'aider s'il vous plaît?

Si vous avez une key primaire composite dans les machins table, les deux colonnes de cette colonne doivent être disponibles dans les orders table pour une relation correcte. Alors seulement vous pouvez faire une jointure appropriée à ces tables pour une requête de sélection.

Selon la discussion m.machineModel = o.machintype Alors, essayez cette requête

 Select c.name, c.land, m.namemachin from orders o inner join customers c on c.id = o.id inner join machins m on m.machinId = o.machine and m.machineModel = o.machintype where c.name = 'karl' 

Si votre récupération est liée à la concaténation de strings, c'est-à-dire get toutes les machines sous forme de string. Je pense que vous pouvez utiliser STUFF et FOR XML PATH.

Ou bien passez par le lien ci-dessous cela pourrait aider http://www.w3resource.com/sql/joins/using-a-where-cluase-to-join-two-tables-related-by-a-composite-primary- key-or-foriegn-key-pair.php