sql - 如何对四个表使用内连接查询

标签 sql

我的数据库中有四个表(注释费用类别项目)。

items 表将在特定类别 ID 上包含如此多的项目 items 表有字段

id(主键)、商品名称(文本)、单位(文本)、类别id(外键)

类别表将只有两个字段 类别表有字段

id(主键),cat_id(整数),类别名称(文本)

notes 表用于记录每条购物备注。 注释表有字段

note_id(主键)、日期(DATE)、总费用(整数)

expense表用于存储特定购物备注下购买的商品及其对应的数量和价格,使用备注id作为外键 费用表有字段

id(主键)、note_id(外键)、数量(整数)、价格(整数)、item_name(文本)

当我输入起始日期、截止日期和特定类别时,我需要在起始日期和截止日期之间购买的该类别下的商品。 我需要一个查询,输出如下:

ITEM NAME           TOTALQTY          TOTALPRICE
carrot                5kg                 500

谁能帮我解决一下吗?

最佳答案

试试这个

select A.name, sum(C.unit), A.unit, sum(C.price) 
from items as A 
    INNER JOIN categories as B ON A.category=B._id
    INNER JOIN expenses as C ON A.name=C.item_name
    INNER JOIN notes as D ON C.Note_id=D._id
where 
    D.date1 between '2012-01-01' and '2012-03-31' and B.name='Vegetables'
group by
    A.name, A.unit

关于sql - 如何对四个表使用内连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937264/

相关文章:

mysql 将旧数据库转移到新数据库

SQL 重新播种有效,但自动增量从 0 开始

mysql - SQL - If 语句看似忽略 'AND'

每个组内的 SQL 连接

mysql - SQL:根据3父id排序

php - 如何在 SQL 中选择日期的第一个和最后一个值?

python - UPDATE 查询期间 WHERE 不存在时引发异常

sql - Access中的多个LEFT JOIN

mysql - 如果列值为空,则使用其他列

mysql - SQL - 根据用户表中的值更新连接表