2つのテーブルがactivities
ありactivity_tours
ます。 activities
hasManyとは>activity_tours
によって関連付けられています。次のSQLを記述して、2つの条件のいずれかを持つ両方のテーブルの行を選択しました。activities.id
activity_tours.activity_id
activity_tours.tour_type
特定のORがある場合- アクティビティには複数のツアーがあります
クエリは少しハックなようです。誰かが私がこのクエリをより効率的にするのを手伝ってもらえますか?
SELECT SQL_CALC_FOUND_ROWS
activities.activity_name,
activities.image_path,
activity_tours.tour_type
FROM
activities
LEFT JOIN activity_tours ON activities.id = activity_tours.activity_id
WHERE
(
activity_tours.tour_type != 17 OR (
(SELECT count(*) FROM activity_tours WHERE activity_id = activities.id) > 1)
)