Mam dwie tabele.mysql zapytanie dwie tabele, UNION i gdzie klauzula
kwerendy tak:
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'))
Używam UNION bo chcę uzyskać różne wartości dla każdego użytkownika, jeśli użytkownik istnieje w pierwszej tabeli i na sekundę.
Na przykład:
table1
nameofuser
peter
table2
nameofuser
peter
jeśli Peter jest na każdym stole powinna uzyskać nazwę jeden raz, ponieważ istnieje na obu tablicach.
Nadal otrzymuję jeden wiersz z pierwszego stołu i drugi z drugiego stołu. Co jest nie tak?
Każda pomoc doceniona.
Czy kolumny w obu tabelach w tym samym czasie? Być może w jednej tabeli kolumna ma typ 'char', a w drugiej jest typu' varchar'there może ja niektóre przestrzenie .... –
nop są obiema rodzajami pól – stefanosn
W twoim miejscu, prawdopodobnie chcesz aby odwołać się do "u" przed każdym polem ... więc 'gdzie (LOWER (nazwa_requestera = = ...) jest to jednoznaczne z odpowiedzią, którą można zobaczyć w: http://stackoverflow.com/questions/5452233/ where-statement-after-a-union-in-sql –