次の表を考えます。
id category_id categorizable_id categorizable_type
66 22 67 Image
72 22 75 Image
74 15 71 Image
104 15 67 Image
126 15 113 Image
ここで、category_ids が 22と15である左の結合を介して、これらの「画像」を選択したいと思います。私の sql は現在、次のようになっています。
SELECT images.id FROM images
LEFT OUTER JOIN category_links
ON images.id = category_links.categorizable_id AND category_links.categorizable_type = 'Image'
where
category_links.category_id = "22" AND
(
select count(*) from category_links
where category_links.categorizable_id = images.id AND
category_links.categorizable_type = 'Image' AND
category_links.category_id = "15"
)
サブクエリの必要性をなくすために、これをどのように書き直すことができますか?