2013-03-31 2 views
0
나는 우리가 내림차순으로 사용자 ID와 일치하는 10 행의 3 열을 확인하고 사용자 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 열과 어떻게 일치하는지 모릅니다. 사용자 ID 2 만 6 활동이 때문에이 같은

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

:

나는 우리가 각 행에 열에서 사용자 ID이 일치하는 경우 (10) 출력이 ...

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

출력이이되어야합니다 단 6 개의 출력이있을 것입니다. 그러나 최대 10과 최소값 0이 필요합니다.

나는 이것을 처리 할 방법이 없으므로 아직 어떤 코드도 시도하지 않았습니다.

감사합니다.

+1

예상되는 결과를 추가하십시오. (컬럼은 무엇이되어야합니까?) – Aiias

+0

mysql_query를 실행할 생각이 없습니다. – deerox

+0

예,하지만 ** 결과 테이블을 어떻게 보이길 원합니까? ** 최종 결과에 필요한 데이터는 무엇입니까? 신분증? 사용자 ID? 사용자 유형? 내가 줄 것이다 @Barmar – 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을 사용하여 추가로 드릴 다운 할 수 있습니다. 가능 별칭.

+0

감사합니다 시도 – deerox

+0

을 다할 것입니다 @Aiias이 내가 – deerox

+0

잘 경우 @Aiias 내 자체 감사를 추가 할 수 있습니다 지금 원하는 것을 가까이 걸렸다 – 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

감사합니다 아래에 게시 당신이 나를 도울 수 있고 내가 에코 할 필요가있는 것을 말할 수 있습니다. – deerox