2017-07-09 2 views
0

Dies ist ein ziemlich grundlegendes Problem, aber ich bin neu in SQL, so dass es mir Probleme macht.Wie führe ich eine SQL-Abfrage aus einer Tabelle basierend auf Werten in anderen Tabellen durch?

Sagen, ich habe drei Tabellen: X, Y und Z.

X Fremdschlüssel für Y enthält, und Y enthält Fremdschlüssel für Z. Wie kann ich alle Zeilen in X auswählen, die für Y Fremdschlüssel haben , die wiederum Fremdschlüssel für Z haben, die wiederum mit einem bestimmten Wert übereinstimmen?

Zum Beispiel kann sagen, dass dies die Spalten für jede Tabelle:

X = "x_ids", "x_values", "y_foreign_keys"

Y = "y_ids", "y_values", „z_foreign_keys "

Z =‚z_ids‘,‚z_values‘

ich brauche, um herauszufinden, wie alle Zeilen von X auszuwählen, die ich bis auf z_values ​​verfolgen kann, die die Zeichenfolge gleich‚test‘.

+2

Haben Sie 'JOIN' angeschaut? – lurker

+0

Verwenden Sie 'JOIN' ... übrigens, wenn Sie uns Beispieldaten gezeigt haben, wäre es viel einfacher, Ihnen zu helfen. –

+0

Welche Art von Daten wäre am besten? Tatsächliche Tabellen- und Zeilennamen? –

Antwort

1

Können Sie dies versuchen:

Tabellen

X = "x_ids", "x_values", "y_foreign_keys"

Y = "y_ids", "y_values", "z_foreign_keys"

Z = "z_ids", "z_values"

SQL

SELECT * FROM Z 
INNER JOIN Y ON z_ids = z_foreign_keys 
INNER JOIN X ON y_ids = y_foreign_keys WHERE X.x_values= 'HELLO WORLD'; 
Verwandte Themen