在mysql中选择id相同但列值不同的行
我想选择具有不同行但具有相同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 |
| 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所提供的答案与这一事实并不矛盾。