2016-08-04 75 views
1

我對「加爲好友」的表格。這裏是表: -在一個查詢合併個域中

tb_addfriend

id mainUid Uid 
-------------------- 
1 12   8 
2 8   7 
3 8   2 
4 4   8 

我想獲得ID = 8。我的firends試着這樣

Select mainUid from tb_addfriend where mainUid=8 OR Uid=8 

它導致這樣

mainUid 
-------- 
12 
8 
8 
4 
查詢0

但我需要這樣的結果

----------- 
12 
7 
2 
4 

怎麼可能。

+0

mainUid,id,uid?你會記得當你離開這段代碼一週後再回到它的時候這些東西是什麼嗎? – e4c5

回答

3
SELECT CASE WHEN mainUid=8 THEN Uid ELSE mainUid END 
FROM tb_addfriend 
WHERE mainUid=8 OR Uid=8 
1

請嘗試以下查詢。

select main from tbl_1 where main<>8 union 
select uid from tbl_1 where uid<>8 order by main desc 

可以使用UNION操作的結果集將兩個或多個SELECT語句的。

2

您正在選擇mainUid列作爲結果。但mainUid列不包含'7'或'2'值。

您需要確定何時需要使用CASE語句選擇mainUid或Uid。當mainUid字段爲8時,可以使用Uid字段。

SELECT 
    CASE mainUid 
     WHEN 8 THEN Uid 
     ELSE mainUid 
    END CASE 
FROM tb_addfriend 
WHERE mainUid=8 OR Uid=8;