Ich habe eine Tabelle namens tbl_PO und eine andere Tabelle namens tbl_PO_LineItems. In tbl_PO sind die relevanten Felder 'PO #' und 'Status'. Das 'Status' Feld hat ein paar Optionen, für die wir jetzt interessiert sind, ist "Geschlossen". Jede Bestellung hat viele Einzelposten, daher gibt es für die Bestellnummer in tbl_PO und die Bestellnummer in tbl_PO_LineItems eine 1: n-Beziehung. In tbl_PO_LineItems gibt es ein Feld namens "LineNum", das die Zeilennummer darstellt. Es gibt ein weiteres Feld namens "Code", das eine Kombination aus Bestellnummer und Zeilennummer ist. Ich weiß, dass dies ein kombiniertes Feld ist, aber es macht den Datenfluss im Rest der Datenbank viel einfacher.Wie Elemente aus untergeordneten Tabelle basierend auf Werten in der übergeordneten Tabelle auswählen?
In einer anderen Tabelle, nenne es tbl_table3, ich mag eine SQL-Anweisung entlang der Linien von diesem verwenden, um in der Lage:
SELECT Code FROM tbl_PO_LineItems WHERE tbl_PO.Status = 'Closed'
Das Problem ist, dass es keine direkte Verbindung von Kodex ist zu ein beliebiges Feld in tbl_PO. Ich muss die mit diesem Code verbundene Bestellnummer durchlaufen, um einen Statuswert von tbl_PO für diese Bestellnummer zu erhalten. Wie kann ich das machen? Ich lese ein wenig über den JOIN-Befehl, aber ich bin nicht damit zufrieden.
Jede Hilfe wird geschätzt.
Es ist einzigartig auf dem Gebiet, prüfen Es ist eine ID für jede Werbebuchung. Es ist nur so, dass wir die Benennungskonvention für die Benutzerfreundlichkeit gewählt haben, wenn Sie den Code in mehreren anderen Tabellen auswählen, damit wir wissen, was es ist, da es aus der Bestellnummer besteht. Kannst du auch erklären, was in deinem Code passiert? Nicht sicher was t1 und t2 sind. – Michael
@Michael Die 't1' und' t2' sind Tabelle _aliases_. Sie können anstelle des vollständigen Tabellennamens verwendet werden, wodurch eine Abfrage lesbarer wird. –
Syntax: select aliasName.columnName FROM tabellenname aliasName; – akhilsk