2013-06-28 106 views
-1

我有一個表「Message_group」,AAAA就是我的profile_id登錄名。在同一列中選擇指定值

message_group_id | profile_id | group_id 

    1   AAAAA  1000 
    2   EEEEE  1000 
    3   AAAAA  2000 
    4   FFFFF  2000 
    5   AAAAA  3000 
    6   HHHHH  3000 
    7   WWWWW  4000 
    8   RRRRR  4000 

我想一個查詢,給出結果:

1 EEEEE 1000 
2 FFFFF 2000 
3 HHHHH 3000 
+3

對不起,我沒有得到你的問題點。你想要選擇什麼?我不明白你的查詢應該返回什麼以及你將要用作選擇參數。 – sailingthoms

+0

@sailingthoms:他正在尋找'AAAAA',並希望所有其他具有相同'group_id'的行。 –

+0

啊,好的。所以我會檢查出 – sailingthoms

回答

0

您可以自行加入表格,以獲得與您正在搜索的行相同的行group_id

SELECT b.* FROM Message_group a 
JOIN Message_group b ON a.group_id=b.group_id 
WHERE a.profile_id = 'AAAAA' 
AND b.profile_id != a.profile_id; 

DEMO:http://sqlfiddle.com/#!2/7a548/1

0

我相信這不是一個功課......所以,請嘗試以下語句:

SELECT x.message_group_id, y.profile_id, y.group_id 
FROM Message_group x 
    INNER JOIN Message_group y 
    ON (x.message_group_id * 2 = y.message_group_id); 

如果作品我會更好地解釋你。 ^^

+0

我的答案應該贏得,因爲我的創造力:)而且我的[小提琴](http://www.sqlfiddle.com/#!2/b406b0/1)顯示它是正確的(: –

0
SELECT 
    yourtable.* 
FROM 
    yourtable 
WHERE 
    group_id IN (SELECT group_id FROM yourtable WHERE profile_id='AAAAA') 
    AND profile_id != 'AAAAA' 
0

,如果我理解正確的U,這應該做的伎倆:

SELECT login_id 
FROM message_group 
WHERE login_id <> 'AAAAA' AND group_id IN (SELECT group_id 
              FROM message_group 
              WHERE login_id='AAAAA') 

ü可以嘗試在此fiddle

0

使用此:

SET @rowno = 0; 
SELECT @rowno:[email protected]+1 `rn`, profile_id, group_id 
FROM Message_group 
WHERE profile_id = 'EEEEE' AND group_id = '1000' 
|| profile_id = 'FFFFF' AND group_id = '2000' 
|| profile_id = 'HHHHH' AND group_id = '3000'; 

和小提琴:http://sqlfiddle.com/#!2/edf7d/10