我真的不確定如何最好地去寫這個查詢。我有3個表,我需要運行一個查詢從其中抽取數據,根據其他條件。基於與其他表的條件從表中選擇數據
表:調查,survey_countries,survey_categories
調查:
ID | survey_id | network_id
survey_countries:
id | survey_id | network_id |國家
survey_categories: ID | survey_id | network_id |類別
(survey_countries和survey_categories中的survey_id與調查表中的survey_id列相關,與id列相對)。
我需要從特定國家和特定類別的調查中檢索數據。然後我需要能夠將UNION用於其他類別,但我想我可以稍後再做。我的嘗試:
SELECT surveys.*
FROM survey_countries
LEFT JOIN surveys ON survey_countries.survey_id = surveys.survey_id ANd survey_countries.network_id = surveys.network_id
LEFT JOIN survey_categories ON survey_countries.survey_id = surveys.survey_id AND survey_categories.network_id = surveys.network_id
WHERE survey_countries.country = 'GB'
AND survey_categories.category = 'my_category'
GROUP BY surveys.id
謝謝!
編輯:下面似乎工作:
SELECT s.*, ca.category, co.country
FROM surveys s
LEFT JOIN survey_countries co ON s.survey_id = co.survey_id AND s.network_id = co.network_id
LEFT JOIN survey_categories ca ON s.survey_id = ca.survey_id AND s.network_id = ca.network_id
WHERE ca.category = 'uncategorised'
AND co.country = 'GB';
我只是不知道它是應該做它,因爲我稍後需要搶調查與多個類別的最佳方式是什麼?
你編輯的查詢將工作得很好。如果您有多個類別和/或國家/地區條件 –