Tengo dos tablas.mysql consultar dos tablas, UNIÓN y donde cláusula
me consulta como esta:
SELECT * FROM (
Select requester_name,receiver_name from poem_authors_follow_requests as one
UNION
Select requester_name,receiver_name from poem_authors_friend_requests as two
) as u
where (LOWER(requester_name)=LOWER('user1') or LOWER(receiver_name)=LOWER('user1'))
estoy usando UNIÓN porque quiero obtener valores distintos para cada usuario si existe un usuario en la primera tabla y en el segundo.
Por ejemplo:
table1
nameofuser
peter
table2
nameofuser
peter
si Peter está en cualquiera de las tablas que debería obtener el nombre de una sola vez, ya que existe en ambas tablas.
Todavía consigo una fila de la primera mesa y una segunda de la mesa número dos. ¿Qué está mal?
Cualquier ayuda apreciada.
son las columnas de las dos tablas de la misma época? Tal vez en una tabla, la columna es de tipo 'char'y en la otra es de tipo' varchar', podría haber algunos espacios ... –
nop ambos son del mismo tipo de campos – stefanosn
En tu sentencia where, probablemente quieras para hacer referencia a la "u" antes de cada campo ... tan 'donde (LOWER (u.requester_name) = ...' esto es similar a la respuesta que se puede ver en: http://stackoverflow.com/questions/5452233/ where-statement-after-a-union-in-sql –