我有兩個表。mysql查詢兩個表,UNION和where子句
我這樣的查詢:
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'))
我使用UNION,因爲我想不同的價值觀爲每一個用戶,如果用戶在第一臺和第二存在。
例如:
table1
nameofuser
peter
table2
nameofuser
peter
如果彼得在兩個表中的我應該得到的名字一個時間,因爲它存在於兩個表。
我還是從第一張桌上拿到一排,在第二張桌上拿到第二張。哪裏不對?
任何幫助表示讚賞。
在兩個你的同時,表的列?也許在一個表中,列的類型爲'char',而在另一個類型爲'varchar'的類型中,可能會有一些空格... – 2012-03-13 22:28:07
nop它們都是相同類型的字段 – stefanosn 2012-03-13 22:38:23
在您的where語句中,您可能想要在每個字段之前引用「u」...因此'where(LOWER(u.requester_name)= ...'這與您可以在下面看到的答案類似:http://stackoverflow.com/questions/5452233/ where-statement-after-a-union-in-sql – 2014-04-07 22:15:31