Selezionare da più tabelle con stessa condizione, errore di evitare ambiguità
-
11-10-2019 - |
Domanda
Come posso fare qualcosa di simile, ma evitare l'column common_reference is ambiguous
errore? Lo so che è ambiguo, voglio scegliere tra table_one tutti i risultati per common_reference lì, e table_two lo stesso.
SELECT * FROM table_one, table_two WHERE common_reference = 42
Questa è, ovviamente, non andare a lavorare, così come si usa sottoquery per ottenere quello che mi serve?
Soluzione 4
Come suggerito dal Mchl nella commenti UNION
è stata la soluzione.
Altri suggerimenti
Inizia con ...
SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42
... e continuare su questa strada:
SELECT * FROM table_one as T1, table_two as T2 WHERE T1.common_reference = 42
SELECT table_one.* FROM table_one, table_two WHERE table_one.common_reference = 42
MySQL ti consente di sapere tramite errore se v'è un'ambiguità irrisolvibile nel vostro SQL.
Se si vuole fare riferimento a un campo specifico che esiste anche in un'altra tabella (o lo stesso tavolo, se si sta facendo un join su se stessa), dei campi pienamente qualificati
SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42
e / o tavolo per alias
SELECT * FROM table_one T1a, table_one T1b WHERE T1a.common_reference = 42
NB: Fair Warning, come noto Mchl, questi sono prodotti cartesiani e non si unisce tipico
.