创建一个MYSQL Select语句,其中包含购物篮和产品表中的信息

时间:2012-11-28 11:15:18

标签: php mysql sql database

我一直试图创建一个购物篮课程,并在尝试按购物篮内容输出时撞墙。

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

     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输出以下内容来链接这两个表:

  

产品ID来自购物篮

     

篮子表中的数量

     

标题来自产品表

     

产品表说明

     

价格来自产品表

我之前做过类似的事情,循环遍历篮子阵列,然后使用当前的ProductID查询products表格,但肯定可以通过一个查询来完成吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

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

请阅读以下内容:

答案 1 :(得分: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包括第一个表中的所有记录和第二个表中的所有匹配记录,假设查询不排除第二个表中的空值。