2014-10-18 62 views
0

I want to join the result of below meantioned queries加入同桌

SELECT `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY` FROM chat where USER_NAME='user1' group by `CHAT_COUNTERPARTY` ORDER BY `chat`.`CURRENT_DATE_TIME` DESC 

SELECT `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY` FROM chat where CHAT_COUNTERPARTY='user1' group by `USER_NAME` ORDER BY `chat`.`CURRENT_DATE_TIME` DESC 

Result after UNION of both result is

idCHAT  USER_NAME TEXT CURRENT_DATE_TIME Descending CHAT_COUNTERPARTY 
6 user1 helSSSSSSlooooo  2014-10-17 20:45:22  user3 
4 user3 helSSSSSSlooooo  2014-10-17 20:44:00  user1 
3 user2 helSSSSSSlooooo  2014-10-17 20:43:59  user1 
1 user1 helSSSSSSlooooo  2014-10-17 20:40:41  user2 

But I want only idCHAT 6&3 from the table because user3 & user2 are CHAT_COUNTERPARTY of user1

回答

1
select `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY`, if(USER_NAME='user1',`CHAT_COUNTERPARTY`,`USER_NAME`)as party from(SELECT `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY` FROM chat where USER_NAME='".$user."' group by `CHAT_COUNTERPARTY` UNION (SELECT `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY` FROM chat where CHAT_COUNTERPARTY='user1' group by `USER_NAME`) ORDER BY `CURRENT_DATE_TIME` DESC)res group by party order by `CURRENT_DATE_TIME` desc 
+0

是的,它的工作。谢谢。!!! – 2014-10-18 13:25:47

0

使用union关键字的两个查询

SELECT `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY` 
FROM chat 
where USER_NAME='user1' 
group by `CHAT_COUNTERPARTY` 
UNION 
(SELECT `idCHAT`,`USER_NAME`,`TEXT`,`CURRENT_DATE_TIME`,`CHAT_COUNTERPARTY` 
FROM chat 
where CHAT_COUNTERPARTY='user1' 
group by `USER_NAME`) 
ORDER BY `CURRENT_DATE_TIME` DESC 
+0

MySQL表示:文件 #1221 - UNION和秩序的不正确使用BY – 2014-10-18 12:20:04

+0

@pri tinarang我刚刚编辑答案。在查询之后,只需将订单移动到最后。 – 2014-10-18 12:23:17

+0

仍然错误: - #1250 - 来自其中一个SELECT的表'chat'不能用于全局ORDER子句 – 2014-10-18 12:24:39