如何编写一个SQL查询来检索同一列上具有2个条件的所有行?

我有一个表,其中有一列称为类型。
我要做的是列出所有类型的值“名称”。
但是type列也有一个称为text的值。
所以我想做的是列出所有具有类型文本值的名称。

我该如何实现?

ID     Type     Value
1      Name    Name1
1      Text    "Hello"
2      Text    "Hello test"
2      Name    Name2
3      Name    Name3
4      Name    Name4
5      Name    Name5


我只想返回具有文本类型的名称值。
该表有两种类型,我想做的就是只返回具有文本类型的所有“名称”类型

预期结果:

ID     Type     Value
1      Name    Name1
2      Name    Name2


因为这两个是唯一带有值的“文本”类型的两个。

最佳答案

进行自我加入:

select t1.*
from tablename t1
join tablename t2 on t1.id = t2.id
where t1.Type = 'Name'
  and t2.Type = 'Text'

关于mysql - 如何编写一个SQL查询来检索同一列上具有2个条件的所有行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54941143/

10-14 15:58
查看更多