2

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

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

     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但肯定可以通过一个查询来完成吗?

4

2 回答 2

2

尝试这个:

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

请阅读以下内容:

于 2012-11-28T11:18:14.073 回答
0
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 包括第一个表中的所有记录和第二个表中的所有匹配记录,假设查询不排除第二个表中的空值。

于 2012-11-28T11:18:24.417 回答