对于这样的表(成分):
+-----+-----+
|id |fruit|
+-----+-----+
| 1 | or |
| 1 | ban |
| 2 | or |
| 2 | or |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)
我想有一个查询应该产生这样的结果:
id 1与两种类型的水果相关联.
我不在乎多行是否有相同的数据,我只关心具有相同id的行是否有不同的结果.
例如,id 2只与两行中的一种水果相关联,我不在乎!!!
我有我想要实现的伪代码,但没有任何mysql
Select all id's
From the ingredients table
Group by id
If group count of id is greater than 1 and has different fruits then display
Run Code Online (Sandbox Code Playgroud)
我有一种有趣的感觉,我可能无法在Mysql中做到这一点,并将不得不使用一些PHP.
谢谢你的时间
您在SQL中的伪代码:
SELECT id
FROM ingredients
GROUP BY id
HAVING COUNT( DISTINCT fruit ) > 1
Run Code Online (Sandbox Code Playgroud)
如果它很慢,你可以尝试这个版本 - MAX()并且MIN()可能比COUNT(DISTINCT )它更快- 尽管它的可读性较差:
SELECT id
FROM ingredients
GROUP BY id
HAVING MAX( fruit ) > MIN( fruit )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5348 次 |
| 最近记录: |