MySQL使用游标循环

时间:2018-08-02 11:13:00

标签: mysql sql

我有一个包含3列的MySQL表,这些列的名称如下:TypeIDPropertyIDValueID

让我们说该表具有以下行:

| TypeID | PropertyID | ValueID |
| 45     | 266        | 736     |
| 46     | 266        | 736     |
| 50     | 266        | 736     |
| 52     | 266        | 736     |
| 50     | 229        | 628     |
| 52     | 229        | 628     |

当ValueID分别匹配736和628时,我正在寻找TypeID。50和52都是这种情况。

请让我知道是否需要进一步说明。

2 个答案:

答案 0 :(得分:4)

您想要GROUP BY

select TypeID
from table t
where ValueID in (736, 628)
group by TypeID
having count(*) = 2; 

如果您有重复的ValueID,则需要COUNT(DISTINCT ValueID)

如果要查看所有列,则可以执行JOIN

select t.*
from table t inner join
     (select TypeID
      from table t
      where ValueID in (736, 628)
      group by TypeID
      having count(*) = 2
     ) tt 
    on tt.TypeID = t.TypeID;

答案 1 :(得分:0)

您可以使用以下查询来获取记录

select TypeID from table where ValueID=736 or ValueID=628
    group by TypeID
    having count(distinct ValueID) > 1;