我有两个表。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