2016-12-14 2 views
0

Ich hämmere jetzt meinen Kopf gegen die Wand. Ich habe viele Stunden gebraucht und bin auf halbem Weg, aber im letzten Teil meiner Anfrage aufgegeben.SQL Join zwischen mehreren Tabellen

Ich habe drei Tabellen.

  1. R8 Tabelle (diese Tabelle Informationen über Maschinen hat)
  2. Actor Tabelle (Dies ist der Kunde, Lieferant und Person Tabelle)
  3. TXT Tabelle (Diese Tabelle den Textwert für einige Felder in R8 hat und Schauspieler Tabellen)

Das Ergebnis, das ich will, ist:

R8.gr, R8.gr1, r8.gr2 sind TXT verknüpft. Zum Beispiel r8.gr2 = txt.txtno von wo ich den Textwert für grx extrahieren kann. Dieses Problem habe ich gelöst.

Aber im selben Ergebnis möchte ich r8.custno.grx.txt haben, was bedeutet, dass ich zuerst nach dem custno in der Actor-Tabelle suchen und dann das grx-Feld finden und nach dem txt für dieses grX-Feld suchen muss in der TXT-Tabelle.

Hier ist meine SQL-Abfrage, die mir den ersten Teil gibt:

SELECT  
    maskin.RNo, maskin.Nm, maskin.Gr5, tekst.Txt AS 'Produksjonsår', 
    maskin.Gr7, tekst2.Txt AS 'Strøm', maskin.Gr8, 
    tekst3.Txt AS 'Eierforhold', maskin.Gr3, tekst4.Txt AS 'Båndtype' 
FROM    
    R8 AS maskin 
LEFT OUTER JOIN 
    Txt AS tekst3 ON maskin.Gr8 = tekst3.TxtNo AND tekst3.TxtTp = 93 
LEFT OUTER JOIN 
    Txt AS tekst4 ON maskin.Gr3 = tekst4.TxtNo AND tekst4.TxtTp = 38 
LEFT OUTER JOIN 
    Txt AS tekst2 ON maskin.Gr7 = tekst2.TxtNo AND tekst2.TxtTp = 20 
LEFT OUTER JOIN 
    Txt AS tekst ON maskin.Gr5 = tekst.TxtNo AND tekst.TxtTp = 40 

Was für Anregungen/help Ich brauche die txt für CustNo zu bekommen ist (von r8) -> gr (von Schauspieler) -> txt (von txt)

+0

Welche Spalten sind die Schlüssel für jede Tabelle und welche Daten möchten Sie? –

+0

Die letzten zwei Spalten, die ich haben möchte, sind TXT aus der txt-Tabelle. Custno ist ein Schlüssel in der Tabelle R8, die ich in der Tabelle Actor suchen möchte. Dann von der Tabelle Schauspieler, wo r8.custno = actor.custno Ich möchte gehen actor.gr = txt.txtno, um den gewünschten Wert txt.txt zu erhalten. Ich hoffe, ich habe gut genug erklärt ... –

+0

Fügen Sie 'create table' und' insert' Anweisungen und die gewünschte Ausgabe in Ihre Frage ein. –

Antwort

0

Ich denke, das ist, was Sie verlangen. Ich habe den 2. und 3. Joins zu Ihrer Abfrage und dem Feld hinzugefügt, nach dem Sie im txt suchen.

SELECT  
    maskin.RNo, maskin.Nm, maskin.Gr5, tekst.Txt AS 'Produksjonsår', 
    maskin.Gr7, tekst2.Txt AS 'Strøm', maskin.Gr8, 
    tekst3.Txt AS 'Eierforhold', maskin.Gr3, tekst4.Txt AS 'Båndtype', 
    myTxt.Txt 
FROM    
    R8 AS maskin 
LEFT JOIN 
    Actor on maskin.CustNo = Actor.CustNo 
LEFT JOIN 
    Txt AS myTxt On txt.myTxt = Actor.gr 
LEFT OUTER JOIN 
    Txt AS tekst3 ON maskin.Gr8 = tekst3.TxtNo AND tekst3.TxtTp = 93 
LEFT OUTER JOIN 
    Txt AS tekst4 ON maskin.Gr3 = tekst4.TxtNo AND tekst4.TxtTp = 38 
LEFT OUTER JOIN 
    Txt AS tekst2 ON maskin.Gr7 = tekst2.TxtNo AND tekst2.TxtTp = 20 
LEFT OUTER JOIN 
    Txt AS tekst ON maskin.Gr5 = tekst.TxtNo AND tekst.TxtTp = 40