【问题标题】:Create a MYSQL Select statement combining information from shopping basket and products tables创建一个 MYSQL Select 语句,结合购物篮和产品表中的信息
【发布时间】:2012-11-16 05:26:34
【问题描述】:

我一直在尝试创建一个购物篮类,但在尝试按购物篮内容输出时遇到了障碍。

我的用户购物篮信息存储在具有以下结构的表中。

     CREATE TABLE IF NOT EXISTS basket (
            `ID` int PRIMARY KEY AUTO_INCREMENT,
            `ProductID` int,
            `Quantity` int,
            `OptionID` int,
            `Cookie` varchar(40)
            ;

其中 Cookie 字段是存储在 cookie 中的用户的唯一标识符。

我的产品表结构如下:

    CREATE TABLE IF NOT EXISTS products (
            ID int PRIMARY KEY AUTO_INCREMENT,
            Title varchar(200),
            Description text,
            Specification text,
            Price decimal(10,2),
            CategoryID int,
            Weight int,
            Options text,
            OptionValues text,
            OptionCost text,
            Discount int(2),
            Featured boolean,
            Images text,
            Stock int,
            Related text,
            Offer boolean,
            OfferDetails boolean,
            Language int
            ;

我想要做什么从我的购物篮中选择商品,并从产品表中选择它们各自的产品标题和价格信息。

所以本质上我需要一个 sql 语句,它将使用 productID 输出以下内容来链接两个表:

购物篮表中的ProductID

篮子表中的数量

产品表中的标题

产品表中的描述

产品表中的价格

我之前做过类似的事情,循环遍历购物篮数组,然后使用当前的ProductID 查询产品表,但肯定可以通过一个查询来完成吗?

【问题讨论】:

    标签: php mysql sql database


    【解决方案1】:
    SELECT b.ProductID, b.Quantity, p.Title, p.Description, p.Price 
    FROM basket b 
         LEFT JOIN products p ON (b.ProductID = p.ID);
    

    还要记住这一点:

    INNER JOIN 从结果集中排除两个表中都不存在的任何记录。

    LEFT JOIN 包括第一个表中的所有记录和第二个表中的所有匹配记录,假设查询不排除第二个表中的空值。

    【讨论】:

      【解决方案2】:

      试试这个:

      SELECT
        b.ProductID,
        b.Quantity,
        p.Title,
        p.Description,
        p.price
      From basket b
      INNER JOIN products p ON b.ProductID = p.Id;
      

      请阅读以下内容:

      【讨论】:

      • 我觉得应该是ÌNNER JOIN products p
      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 2012-06-30
      • 2020-04-08
      • 2016-02-28
      • 2014-02-27
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      相关资源
      最近更新 更多