2014-10-18 58 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