SQL Select语句包含多个表

时间:2014-04-17 16:46:23

标签: mysql sql select

我正在尝试在现有购物车上运行一个小报告,向我展示包含每位用户产品的开放式购物车

所以我正在使用3张桌子:

orders
    id
    order_id
    user_id
    state
    customer_email
    customer_firstname
    customer_lastname

order_items
    id
    cms_id
    order_id
    name
    price

users
    id
    cms_id
    email

购物车是订单表中的状态。如果state = cart,则订单仍然打开。 我到了可以展示客户和订单的地步,但我还要在订单中显示项目

关系是:

用户有很多订单 订单有很多项目

users.id = orders.user_id

这是我的问题:

select 
    users.email AS user_email, 
    orders.customer_email AS order_email,
    orders.customer_firstname,
    orders.customer_lastname,
    orders.state
from 
    users, 
    orders 
where 
    users.id = orders.user_id and orders.state = "cart"

编辑:了解我正在尝试做的事情

我想返回状态设置为“cart”的所有订单。在这些订单中,我想要返回其中的所有项目

现在我已经拥有所有订单/购物车中的物品,我希望看到用户如果没有用户(如果他们已经注销)它可以显示空白...我仍然想看到那个购物车< / p>

提前多多感谢

2 个答案:

答案 0 :(得分:1)

select 
    users.email AS user_email, 
    orders.customer_email AS order_email,
    orders.customer_firstname,
    orders.customer_lastname,
    orders.state,
    order_items.name,
    order_items.price
from 
    users, 
    orders,
    order_items 
where 
    users.id = orders.user_id and 
    orders.order_id = order_items.order_id and
    orders.state = "cart"

答案 1 :(得分:1)

选择     users.email AS user_email,     orders.customer_email AS order_email,     orders.customer_firstname,     orders.customer_lastname,     orders.state 从     用户在users.id = orders.user_id上加入订单     在orders.order_id = order_items.order_id上加入order_items 哪里    orders.state =&#34; cart&#34;