2016-08-05 17 views
0

Ich versuche, eine Abfrage für eine Viele-Viele-Beziehung auszuführen, ich habe eine Junction-Tabelle erstellt, um das zu tun. Jetzt Fragen Ich habe keine Ergebnisse erhalten, wenn ich erwarte für die einzelnen Indizes zurück 3 Reihen 122.123.124, jeder kann meine Fehler hinweisen, dankeAbfrage-Junction-Tabelle-viele-zu-viele-Beziehung

SELECT * FROM [Moldingdata].[dbo].[mach_part_junction] ORDER BY [machinename] ASC 

SELECT MachineList.machinename ,JDEPARTIMGLU.Jde_part_num 
from mach_part_junction 
INNER JOIN MachineList on mach_part_junction.machinename = machinelist.Machine_ID 
INNER JOIN JDEPARTIMGLU on mach_part_junction.machinename = machinelist.Machine_ID 
WHERE mach_part_junction.machinename= 'MM01' 

Ergebnisse:

machinename ndx_jde_part_img 
----------- ---------------- 
MM01  122 
MM01  123 
MM01  124 
MM04  122 
MM15  124 
MM17  122 
MM32  122 
MM32  123 

(8 row(s) affected) 


machinename Jde_part_num 
----------- -------------------- 

(0 row(s) affected) 

Antwort

1

Die Join Bedingungen auf Ihrer zweiten und dritten Tabelle sind die gleichen.

Es sieht aus wie die Join-Bedingung der dritten Tabelle ist derjenige, der geändert werden muss.

0

Wenn ich Anfragen wie diese zu beheben ich im Allgemeinen die folgenden:

SELECT * 
FROM mach_part_junction 
INNER JOIN MachineList on mach_part_junction.machinename = machinelist.Machine_ID 

Dann füge ich die nächste JOIN:

SELECT * 
    FROM mach_part_junction 
    INNER JOIN MachineList on mach_part_junction.machinename = machinelist.Machine_ID 
INNER JOIN JDEPARTIMGLU on mach_part_junction.machinename = machinelist.Machine_ID 

dann die WHERE (wenn die Tabellen nicht zu groß sind)

Auf diese Weise können Sie sehen, was vor sich geht.