この質問をする最善の方法がわかりませんので、混乱に対処していただきありがとうございます。
これが私が思いついたクエリです:
SELECT a.id FROM assets a, courseAssets ca, courses c, assetTags at WHERE c.courseUser = {$userId} AND c.id = ca.courseID and ca.assetID = a.id AND count(at.assetID = a.id) <5
これは、3番目の「and」まで機能します。その後、結果を取得してassetTagsで検索し、5回未満しか発生しないIDのみを返すようにしています。
これが理にかなっていることを願っています、私はそれを見ることができます。UNION、Joinなどがあると思います。