我一定有星期五的情况......假设我有以下表格和数据:
+------------+
| Park |
+------------+
| Cape Cod |
| Blue Ridge |
| Ice Age |
+------------+
+--------+
| Tag |
+--------+
| Biking |
| Skiing |
+--------+
+---------------------+
| ParkTags |
+------------+--------+
| Cape Cod | Biking |
| Blue Ridge | Hiking |
| Ice Age | Biking |
| Ice Age | Hiking |
+------------+--------+
换句话说,公园存储在一个表中,标签存储在另一个表中,第三个表将一个或多个标签链接到公园。
我正在尝试做的是选择一个或多个标签并返回所有具有所有标签的公园。根据以上信息,标签与公园的关联如下:
骑自行车:科德角冰河时代
远足:蓝岭冰河时代
骑自行车和徒步旅行:冰河时代
我的问题是,我的查询做错了什么?我想要得到的是所有带有自行车和徒步旅行标签的公园。
# My query so far
SELECT
Park.name as Park,
Tag.name as Tag
FROM
ParkTags
JOIN Park ON Park.id = ParkTags.fk_park_id
JOIN Tag ON Tag.id = ParkTags.fk_tag_id
WHERE
Tag.name = 'Biking' AND Tag.name = 'Hiking'
ORDER BY
Park.name
我的预期输出是只获得冰河世纪公园。运行该查询返回零个结果。如果我在条件中将 AND 更改为 OR,则结果是所有三个公园。
谢谢。