2013-03-31 37 views
0

我需要檢查在10行3列,我們按降序排列匹配用戶名和找到用戶ID和顯示結果查找用戶ID三列在一排

想這是我的表

表名飼料

id buy_id sell_id sold_id 
30  2  5  3 
29  6  4  9 
28  44  21  36 
27  26  2  15 
26  4  2  9 
25  8  7  2 
24  11  2  3 
23  2  1  9 

例如:我們需要找到用戶ID 2,並設置上限到10個輸出。

我只有一列的工作,所以我不知道如何匹配一列中的3列。

我想10輸出...

if userid = buy_id then echo "buyer"; 
if userid = sell_id then echo "seller"; 
if userid = sold_id then echo "third party"; 

輸出應該是這樣的,當我們在列各行中匹配用戶ID 2:

1.buyer 
2.seller 
3.seller 
4.third party 
5.seller 
6.buyer 

因爲只有6用戶ID 2的活性,從而將只有6輸出,但我需要最大10和最小0.

我還沒有嘗試過任何代碼,因爲我不知道如何處理這個。

謝謝,希望我讓自己清楚:

+1

請添加您的預期結果。 (列應該是什麼?) – Aiias

+0

我不知道我會運行什麼mysql_query – deerox

+0

是的,但是**你想讓結果表看起來像什麼?**你需要在最終結果中得到什麼數據? ID?用戶名?用戶類型? – Aiias

回答

1

試試這個:

SELECT * 
FROM (
    (SELECT buy_id userid, id, 'buyer' type 
    FROM feeds) 
    UNION 
    (SELECT sell_id userid, id, 'seller' type 
    FROM feeds) 
    UNION 
    (SELECT sold_id userid, id, 'third party' type 
    FROM feeds) 
) feeds_data 
WHERE feeds_data.userid = $CHOOSE_USERID 
LIMIT 10 

當您選擇2$CHOOSE_USERID,這應該返回一個表,如:

| userid | id | type  | 
|--------|----|-------------| 
| 2  | 30 | buyer  | 
| 2  | 27 | seller  | 
| 2  | 26 | seller  | 
| 2  | 25 | third party | 
| 2  | 24 | seller  | 
| 2  | 23 | buyer  | 

您可以通過改變$CHOOSE_USERID值自定義查詢和您可以通過使用id字段或type字段使用feeds_data t可以使用別名。

+0

謝謝@Aiias現在我將嘗試 – deerox

+0

這花了我接近我現在想我可以加入我自己的感謝@Aiias – deerox

+0

好,如果你仍然在這裏,你可以幫助我,並告訴我需要回聲? – deerox

1
select id, 
     case when buy_id = $userid then "buyer" 
      when sell_id = $userid then "seller" 
      else "third party" 
     end who 
from feeds 
where $userid in (buy_id, sell_id, sold_id) 
limit 10 
+0

感謝@Barmar我會給一個嘗試 – deerox