gpt4 book ai didi

MYSQL 子选择不工作

转载 作者:行者123 更新时间:2023-11-29 02:04:38 24 4
gpt4 key购买 nike

我正在尝试一次运行两个查询。当我分别运行这两个查询时,它们会起作用并为我提供我想要的相关信息。当我尝试将它们结合起来时,我似乎在某处出错了。有什么明显的地方我做错了吗?

 SELECT 
pd.product_id, b.product_id, basket_qty,
product_name, product_price, product_image,
pd.category_id, basket_id
(SELECT
pd.product_id, b.product_id,
basket_session_id,
SUM(product_price) AS subtotal
FROM
basket b, product pd
WHERE
basket_Session_id = '9htt961lpa1kqieogd5ig5ff93' AND
b.product_id = pd.product_id)
FROM
basket b, product pd, department dep
WHERE
basket_session_id = '9htt961lpa1kqieogd5ig5ff93'
AND b.product_id = pd.product_id
AND dep.department_id = pd.category_id

表结构-

CREATE TABLE IF NOT EXISTS `basket` (
`basket_id` int(10) unsigned NOT NULL auto_increment,
`product_id` int(10) unsigned NOT NULL,
`basket_qty` int(10) unsigned NOT NULL default '1',
`basket_session_id` char(32) NOT NULL default '',
`basket_date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`basket_id`),
KEY `product_id` (`product_id`),
KEY `basket_session_id` (`basket_session_id`)
)

CREATE TABLE IF NOT EXISTS `product` (
`product_id` int(10) unsigned NOT NULL auto_increment,
`category_id` int(10) unsigned NOT NULL,
`department_name` varchar(100) NOT NULL,
`product_name` varchar(100) NOT NULL default '',
`product_description` text NOT NULL,
`product_price` decimal(7,2) NOT NULL default '0.00',
`product_qty` smallint(5) unsigned NOT NULL default '0',
`product_size` text NOT NULL,
`product_image` varchar(200) default NULL,
`product_date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`product_id`),
UNIQUE KEY `product_name` (`product_name`),
KEY `category_id` (`category_id`)
)


CREATE TABLE IF NOT EXISTS `department` (
`department_id` int(10) unsigned NOT NULL auto_increment,
`department_parent_id` int(11) NOT NULL default '0',
`name` varchar(50) NOT NULL default '',
`description` varchar(200) NOT NULL default '',
`image` varchar(255) NOT NULL default '',
PRIMARY KEY (`department_id`),
UNIQUE KEY `name` (`name`),
KEY `department_parent_id` (`department_parent_id`)
)

我正在尝试基于电子商务应用程序的“购物篮” session 提取产品信息。由于一个篮子可以包含不止一种产品,我想返回所有产品的总值(value)的 SUM。

最佳答案

确保在子选择之前添加一个逗号..

SELECT 
pd.product_id, b.product_id, basket_qty,
product_name, product_price, product_image,
pd.category_id, basket_id,
(SELECT ...

除此之外,您的查询对我来说似乎无效。你到底想达到什么目的?我相信有比您刚刚编写的查询更好的查询。

所以我不确定您要实现什么,我也不知道您的数据库是什么样子,但请修改此查询以满足您的需求。这对您来说应该是一个好的开始:

SELECT pd.product_id, b.product_id, b.basket_qty,
pd.product_name, pd.product_price, pd.product_image,
pd.category_id, b.basket_id, b.basket_session_id,
SUM (pd.product_price) AS subtotal
FROM product pd
JOIN basket b ON b.product_id = pd.product_id
JOIN department dep ON dep.department_id = pd.category_id
WHERE b.basket_session_id = '9htt961lpa1kqieogd5ig5ff93'
GROUP BY product_id

另请注意,您使用了 department 表,但您从未从中选择任何字段或任何内容。所以这里好像没什么用。我只是将它添加到我的查询中,以防您以后想要改进它。

关于MYSQL 子选择不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8688559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com