【问题标题】:join multiple tables with where and Where IN使用 where 和 Where IN 连接多个表
【发布时间】:2018-01-20 13:32:07
【问题描述】:

挑战

我正在尝试将用户表加入他们关注的品牌列表(通过关注者)并获取整个产品列表。我还想右加入产品可用的 Orders 表,并且 Stage 字段(在 Orders 中)设置为“basket”。

表格

用户:ID、姓名

+-------+-------------+
| ID    | Name        |
+-------+-------------+
| 1     |   User 1    |
| 2     |   User 2    |
+-------+-------------+

品牌:ID、名称

+-------+-------------+
| ID    | Name        |
+-------+-------------+
| 1     |   brand 1   |
| 2     |   brand 2   |
+-------+-------------+

产品:ID、名称、品牌 ID、价格

+-------+-----------+-------------+-------------+
| ID    | Name      | Brand       | Price       |
+-------+-----------+-------------+-------------+
| 1     | product 1 | 1           | 5           |
| 2     | product 2 | 1           | 6           |
| 3     | product 3 | 2           | 7           |
+-------+-----------+-------------+-------------+

订单:ID、用户 ID、产品 ID、阶段(篮子)

+-------+-----------+-------------+-------------+
| ID    | User      | Product     | Stage       |
+-------+-----------+-------------+-------------+
| 1     | 1         | 1           | basket      |
| 2     | 1         | 2           | basket      |
| 3     | 1         | 1           | completed   |
+-------+-----------+-------------+-------------+

关注者:用户、品牌 ID

+-------+-----------+-------------+
| ID    | User      | Brand       |
+-------+-----------+-------------+
| 1     | 1         |   1         |
+-------+-----------+-------------+

【问题讨论】:

    标签: mysql


    【解决方案1】:
    select Orders.ID
    from Orders
    inner join User on  Followers.User = User.ID
    inner join Brand on Followers.Brand =  Brand.ID
    inner join Product on Product.Brand = Brand.ID
    right join order on (Orders.Product = Product.ID and Orders.User = User.ID)
    where Orders.Stage IN ("basket")
    

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多