Pregunta

¿Cómo puedo hacer algo como esto pero evita el column common_reference is ambiguous error? Sé que es ambigua, quiero seleccionar a partir table_one todos los resultados para common_reference allí, y table_two la misma.

SELECT * FROM table_one, table_two WHERE common_reference = 42

Esto es, obviamente, no va a funcionar, así que ¿cómo se utiliza subconsultas para lograr lo que necesito?

¿Fue útil?

Solución 4

Como sugiere MCHL en los comentarios UNION fue la solución.

Otros consejos

empiezan por ...

SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42

... y seguir este camino:

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 le permitirá saber a través de error si hay una ambigüedad irresoluble en su SQL.

Si desea hacer referencia a un campo específico que también existe en otra tabla (o la misma mesa, si está haciendo una combinación en sí mismo), el uso de campos completos

SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42

y / o tabla de alias

SELECT * FROM table_one T1a, table_one T1b WHERE T1a.common_reference = 42

Nota: Feria de advertencia, como se ha señalado MCHL, estos son productos cartesianos y no se une típica

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top