我有一個名爲VIEW的評論,與汽車表有關,汽車表與表標籤有多對多的關係(通過名爲cars_tags的連接表),但是什麼我需要的是檢索與某些標籤相關的汽車評論,並同時與另一個標籤相關。我今天是下面的SQL代碼:Postgresql選擇相關標籤(多對多)
SELECT "cars"."review".*
FROM "cars"."review"
LEFT JOIN cars.cars ON (cars.review.car_id = cars.cars.id)
LEFT JOIN cars.makes ON (cars.cars.make_id = cars.makes.id)
LEFT JOIN cars.cars_tags ON (cars.cars.id = cars.cars_tags.car_id)
LEFT JOIN cars.tags ON (cars.cars_tags.tag_id = cars.tags.id)
WHERE (cars.tags.id IN ('91782e95-8c5d-4254-82ab-b11a21306c18'))
AND (cars.tags.id IN ('031cec30-df27-471e-858d-53c3d9657c8a'))
ORDER BY "cars"."review"."score" DESC LIMIT 100
此SQL給我帶來了沒有結果,但我相信,有現車至極都與第一ID:「91782e95-8c5d-4254-82ab-b11a21306c18」 AND'031cec30-df27-471e-858d-53c3d9657c8a'同時...我做錯了什麼?
感謝
您的查詢說的是「只帶回'結果'cars.tags.id'在'917 ...'和'cars.tags.id'在'031 ...'同時」 。當然,沒有一個標籤可以同時成爲兩件不同的事情!在('917 ...','031 ...')中嘗試使用'cars.tags.id',這有效地說明了「帶回匹配*這些條件之一的標籤」 – user1935361
但是正是我需要的是結果這與一個ID和其他ID在同一時間有關 –
我誤解了你 - 什麼都不能滿足X ='A'和X ='B'。 「相關」是什麼意思?編輯:等等,我想我明白了,給我一分鐘 – user1935361