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?

È stato utile?

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

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top