Quindi ho tre tabelle che sono coinvolte nel mio problema, 2 tabelle regolari e una tabella di join per una ha molte e appartiene a molte relazioni. Sembrano questo:Query SQL per tabella join e più valori
table1
--id
--data
table2
--id
--data
table1_table2
--table1_id
--table2_id
Quindi, la mia domanda è: come faccio a interrogare (utilizzando un join) per qualcosa che avrebbe uno o più valori nel table1_table2 per un elemento in tabella 1. Per esempio:
Table 1
+----------+
|id | data |
+----------+
|1 | none |
+----------+
|4 | match|
+----------+
Table 2
+----------+
|id | data |
+----------+
|1 | one |
+----------+
|2 | two |
+----------+
table1_table2
+----------------------+
|table1_id | table2_id |
+----------------------+
|1 | 1 |
+----------------------+
|4 | 1 |
+----------------------+
|4 | 2 |
+----------------------+
Ho bisogno di una query che sarebbe partita Tabella 1 fila id 4 perché ha un link via il join sia riga 1 e 2 dalla tabella 2. Se questo è fonte di confusione si prega di chiedere qualsiasi cosa.
Forse ero un po 'poco chiaro, sto usando table1_table2 come join non come da. Ho bisogno di assicurarsi che corrisponda 1 e 2 sia da tavolo 2.
Ecco la mia domanda finora ...
SELECT DISTINCT table1.id,
table2.data
FROM table1
LEFT JOIN table1_table2 ON table1.id = table1_table2.table1_id
LEFT JOIN table2 ON table2.id = table1_table2.table2_id
Ho bisogno di un dove che farà che per una voce nella tabella 1 si corrisponde sia 1 e 2 da tavolo 2.
L'uscita Cerco sarebbe:
+---------------------+
|table1.id|table2.data|
+---------------------+
|4 |one |
+---------------------+
|4 |two |
+---------------------+
Stai imparando SQL (cioè sono questi compiti?) Questa è una domanda di follow-up molto ovvia a una delle tue domande precedenti (http://stackoverflow.com/questions/10726322/sql-join-using-a-join -table-da-rails). Non ho problemi con te che stai imparando su SO, ma potresti voler taggare la tua domanda [compiti a casa] se lo è. – Tony
Questo non è per la scuola. – Red
Sebbene la domanda sia correlata a una domanda precedente, in realtà non utilizza le stesse tabelle. Sto cambiando il nome ai tavoli che sto effettivamente usando. – Red