Seleccione de varias tablas con mismas condiciones, el error de evitar la ambigüedad
-
11-10-2019 - |
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?
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
.