如何从包含链接表的3个表中选择行?

时间:2014-12-19 15:44:51

标签: mysql join

我有以下表格:

| Store            | Address | Category    | link             |
|   id             |   id    |   id        |   fk_categoryID  |
|   fk_addressID   |   city  |   category  |   fk_storeID     |

我想选择地址为A类的所有商店。

我用它来查找特定城市的商店:

SELECT a.name, b.street1, b.street2, b.city
FROM store a
JOIN address b ON b.id = a.fk_addressID
WHERE b.city = 'oslo'

现在我只需要添加类别标准。

我不记得该怎么做了。为链接表添加另一个INNER或LEFT联接可以正常工作,但是我找到的每个商店都有7-10行。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

SELECT s.id AS "Store ID", a.id AS "Address ID", a.city AS "City", c.category AS "Category" FROM store s
LEFT JOIN address a ON a.id = s.fk_addressID
LEFT JOIN link l on l.fk_storeID = s.id
LEFT JOIN category c on c.id = l.fk_categoryID
WHERE a.city = "oslo" AND c.category = "A";

如果有帮助,请告诉我!

修改

在我的计算机上重新创建架构,添加了一些测试数据,运行SQL并获得以下内容:

enter image description here