gpt4 book ai didi

mysql - 需要帮助处理棘手的 mySQL 查询

转载 作者:可可西里 更新时间:2023-11-01 08:08:00 26 4
gpt4 key购买 nike

我在这里要求很多 - 但也许一些 SQL 大师可以告诉我如何提取我想要的数据并节省 10 多个小时的 google-time(tm)?

这些是我的表格,仅显示相关字段:

**event**
id
cust_id
....

.

**art**
id
art_name
...

.

**event_art**
event_id
art_id
...

.

**price**
cust_id
art_id
price
...

用户 ID 为“0”的“价格”数据库中的价格是标准价格,如果存在带有 art_id 和 cust_id 的条目是该商品的客户特定价格。

我拥有的是 cust_id,现在我拥有的输出只是使用 SQL 的客户特定价格:

SELECT * FROM price WHERE cust_id='{$custID}' 

但我想包括以前订购的商品的价格,即使它们没有特定于客户的价格。

所以我需要的是:

1 从 cust_id = custID 的表事件中获取所有 id

2 从表 event_art 中获取这些订单的所有不同文章 ID

3 使用 custID 从价格表中输出“art”中文章的“id”和“art_name”和“price”,如果不存在则为标准价格为 0。

对我来说,这听起来像是有点超出我的 SQL 知识范围的多行 JOIN。有人可以帮我解决问题,为我指出处理类似问题的指南,或者……好吧,什么?

提前致谢!

最佳答案

SELECT  art_id, price
FROM price
WHERE cust_id = $cust_id
UNION ALL
SELECT art_id, price
FROM (
SELECT DISTINCT art_id
FROM event e
JOIN event_art ea
ON ea.event_id = e.id
WHERE e.cust_id = $cust_id
AND ea.art_id NOT IN
(
SELECT art_id
FROM price
WHERE cust_id = $cust_id
)
) e
JOIN price p
ON p.cust_id = 0
AND p.art_id = e.art_id

确保 (cust_id, art_id)(按此顺序)是 PRIMARY KEYUNIQUE INDEX price

关于mysql - 需要帮助处理棘手的 mySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5431778/

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