1

私は mysql ここに画像の説明を入力 1にこのテーブルを持っています。

この例では、entity_id=6 のみが field_tags_tid=2 および field_tags_tid=7 と一致するため、結果は 1 になります。

4

1 に答える 1

4

この問題はよく呼ばれますRelational Division

SELECT  entity_ID
FROM    tableName
WHERE   field_tags_ID IN (2,7)
GROUP   BY entity_ID
HAVING  COUNT(*) = 2

field_tags_ID一意性が毎回強制されていない場合entity_IDは、DISTINCTキーワードが必要です。それ以外の場合は、そのままにして、

SELECT  entity_ID
FROM    tableName
WHERE   field_tags_ID IN (2,7)
GROUP   BY entity_ID
HAVING  COUNT(DISTINCT field_tags_ID) = 2

更新 1

SELECT  COUNT(*) totalCOunt
FROM
(
    SELECT  entity_ID
    FROM    tableName
    WHERE   field_tags_tid IN (2,7)
    GROUP   BY entity_ID
    HAVING  COUNT(DISTINCT field_tags_tid) = 2
) s
于 2013-02-27T14:32:02.687 に答える