SQL新手在这里。我有一个mysql表与行像
| 一|B| C| D| e| F|
| --|--|--|--|--|--|
| Abra| CA| da|胸罩|sa| 7 |
| Abra| fa|会|的|莫| 8 |
| AC| St| da|胸罩|sa| 10 |
| AC| CA| da|胸罩|莫| 9 |
| pa| ni| rar|专利|sa| 11 |
| pa| PU|胸罩|sa|莫| 11 |
列e
中的值是sa
或mo
。对于列a
的每个值,总是有两行,一行是sa
,另一行是mo
(加上其他几行)。
我想获取所有具有相同列a
值的行,但sa
和mo
行在其列f
中具有不同值。因此对于上面的示例,查询将过滤掉最后2行,因为它们在列f
中都具有值11
,并将返回
| 一|B| C| D| e| F|
| --|--|--|--|--|--|
| Abra| CA| da|胸罩|sa| 7 |
| Abra| fa|会|的|莫| 8 |
| AC| St| da|胸罩|sa| 10 |
| AC| CA| da|胸罩|莫| 9 |
我尝试了这个查询,但它没有返回正确的数据
select * from table t1 where exists
(select 1 from table t2 where t1.a <> ''
and t2.a <> '' and t1.a=t2.a and (t2.e='sa' or t2.e='mo') and t1.e=t2.e and t1.f<>t2.f) order by a
字符串
1条答案
按热度按时间idv4meu81#
首先确定
a
的哪些值具有f
的2个值,然后只包括具有a
的那些值的行,怎么样?字符串