我有一个名为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