2016-12-21 11 views
1

同じ行の異なるIDを持つデータを選択したいとします。私が希望何mysqlで同じidであるが列の値が異なる行を選択します。

| Codenum | Letter | description | 
|  001 | A  | APPLES  | 
|  002 | A  | BANANA  | 
|  001 | B  | RED   | 
|  001 | B  | GREEN  | 
|  002 | B  | BLUE  | 
|  002 | B  | YELLOW  | 

はLETTER Bも同じCodenumとLETTER Aの記述として分類されている行を取得することです。

不完全なクエリがSELECT description FROM table where letter = Bであると私はCodenum 望ましい結果に対応する文字Aの説明を追加したい:事前に

001 B RED  APPLES 
001 B GREEN APPLES 
002 B BLUE BANANA 
002 B YELLOW BANANA 

おかげで多くのことを

+0

ただ、それ自体にテーブルを結合する – Strawberry

+0

それがユニークではないと言いますテーブル – OFBrc

答えて

0

この

select a.codenum, a.letter, a.description, b.description 
from table a join table b 
    on b.codenum = a.codenum 
     and b.letter = 'A' 
where a.letter = 'B' 
をお試しください
+0

こんにちは。彼らは同じテーブルにいた – OFBrc

+0

@OFBrc答えは何もその事実と矛盾していません。 – Strawberry

0

あなたが探しているものはだと思いますgroup_concat()

このクエリを試してみてください:

SELECT 
    GROUP_CONCAT(`description`) as description_concat 
FROM 
    `table_name` 
WHERE 
    `letter` = 'B' 
GROUP BY 
    `letter` 
0

正確なクエリ:

select a.codenum, a.letter, a.description,b.description 
from tbl_data a join tbl_data b on b.codenum = a.codenum 
and b.letter = 'A' where a.letter = 'B' 
1

あなたが副選択でそれを行うことができます:

SELECT Codenum, Letter, description, (SELECT description FROM mytable x where x.Codenum = second.Codenum AND Letter = 'A') AS adescription 
FROM mytable second 
WHERE mytable.Letter = 'B' 
関連する問題