SQL-使用外键的复杂查询

SQL-使用外键的复杂查询,sql,Sql,所以,我对SQL完全陌生,但我所学课程中的书毫无用处,我正试图为这门课程做一个项目。互联网对我并没有太大帮助(我不知道从哪里开始),所以我想寻找到好的教程的链接,以及一个非常具体的查询帮助 如果我说的不够清楚,请让我解释一下!:) 假设在名为jewel\u store的数据库中有两个表sale和p\u sale sale包含两列:sale\u code和sale\u date p\u sale包含引用上述sale\u ID、p\u ID、p\u sl\u数量和 p_sl_值 sale\u cod

所以,我对SQL完全陌生,但我所学课程中的书毫无用处,我正试图为这门课程做一个项目。互联网对我并没有太大帮助(我不知道从哪里开始),所以我想寻找到好的教程的链接,以及一个非常具体的查询帮助

如果我说的不够清楚,请让我解释一下!:)

假设在名为
jewel\u store
的数据库中有两个表
sale
p\u sale

sale
包含两列:
sale\u code
sale\u date

p\u sale
包含引用上述
sale\u ID
p\u ID
p\u sl\u数量
p_sl_值

sale\u code
sale
的主键,
sale\u code,p\u ID
p\u sale

目前p_ID
p_ID
没有多大用处,所以在大多数情况下忽略它

p_sl_数量
int
p_sl_值
double(8,2)
。第一个是购买产品的数量,第二个是每件产品的价值

很明显,
sale\u code
可以链接到
p\u sale
表中的多个条目(例如,对于sale\u code 1,我有两个关于p\u sale的条目)

所有这些都是基于我从任务中得到的信息,并且得到了正确的实现,并且在中有一些示例值

我现在要做的是找出某个月的销售总收入。我最初的方法是开始一步一步地构建所有内容,因此我得出如下观点:

选择
作为销售月收入的总和(p_sl_值*p_sl_数量),
p_sale.sale_代码
来自jewel_store.p_销售
按p_销售分组。销售代码

这可能已经完成了一半,因为我可以得到商店销售产生的总收入。所以我的下一步是使用这个查询并从中选择。我已经把它搞砸了好几次了,现在我都抓狂了。我是这样做的:

SELECT
    SUM(sales_monthly_income),
    sales_monthly_income,
    EXTRACT(MONTH FROM jewel_store.sale.sale_date) AS sales_month
FROM (
SELECT
    SUM(p_sl_value * p_sl_quantity) AS sales_monthly_income,
    sale_CODE
FROM jewel_store.p_sale
GROUP BY sale_CODE
) as code_income, jewel_store.sale
GROUP BY sales_month
首先,我只需要在我的最终表格中打印
每月总收入
列,但我用它来澄清其中的所有错误。我想我需要以某种方式使用引用另一个表的外键,但我的书在帮助我方面是完全无用的。我希望有人能解释为什么这是错误的,什么是正确的,请给我指一个好的pdf、网站或任何东西来学习如何做这类事情。(我查过W3SCHOOLS,它对基础知识有好处,但对太高级的东西没有好处)


提前谢谢

从我的头顶上看,这可能就是它,按月分组计算价值乘以数量的总和

SELECT
    SUM(p.p_sl_value * p.p_sl_quantity) AS sales_monthly_income,
    month(s.sale_date)
FROM p_sale p
inner join sale s on s.sale_code = p.sale_code
GROUP BY MONTH(s.sale_date)

工作起来很有魅力!仍然在寻找一些关于如何使用外键的参考资料,但我想我现在懂多了一点!谢谢!我想……我知道这一点,但是对于SQL来说,这里的事情似乎还可以,而且我真的可以使用页面的列表格式,这非常有帮助!不过,我需要比学校更好的资源