在mysql中选择id相同但列值不同的行

在mysql中选择id相同但列值不同的行,mysql,Mysql,我想选择具有不同行但具有相同id的数据 | Codenum | Letter | description | | 001 | A | APPLES | | 002 | A | BANANA | | 001 | B | RED | | 001 | B | GREEN | | 002 | B | BLUE | | 002 | B |

我想选择具有不同行但具有相同id的数据

| Codenum | Letter | description |
|     001 | A      | APPLES      |
|     002 | A      | BANANA      |
|     001 | B      | RED         |
|     001 | B      | GREEN       |
|     002 | B      | BLUE        |
|     002 | B      | YELLOW      |
我想得到的是被分类为字母B的行,以及字母A的描述,它们的代码编号相同

不完整的查询是
selectdescription FROM table where letter=B
,我想添加与Codenum对应的字母A的描述 预期结果:

001    B   RED     APPLES
001    B   GREEN   APPLES
002    B   BLUE    BANANA
002    B   YELLOW  BANANA
提前非常感谢

试试这个

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'

我想你要找的是

请尝试此查询:

SELECT
    GROUP_CONCAT(`description`) as description_concat
FROM
    `table_name`
WHERE
    `letter` = 'B'
GROUP BY
    `letter`
精确查询:

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'

您可以通过子选择来执行此操作:

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'

只需将表连接到它自己就可以了。它说的不是唯一的表。他们在同一条路上tables@OFBrc所提供的答案与这一事实并不矛盾。