简体   繁体   English

如何从SQL中的两个表获取记录

[英]How to get records from two tables in sql

i have two DB tables STUDENT and FEES. 我有两个数据库表学生和费用。 Expected result is to get all record from table for particular month(date) with sum of amount in that month from FEES table and same id record from STUDENT table 预期结果是从表中获取特定月份(日期)的所有记录,并从FEES表中获取该月的金额之和,从STUDENT表中获取相同的id记录

STUDENT 学生

在此处输入图片说明

FEES 费用

**Expected result (for particular date according to DATE cloumn in FEE table ex : 02-2019 ** **预期结果(根据FEE表中DATE字段的特定日期,例如:02-2019 **

ID     NAME     ADDRESS     AMOUNT
-----------------------------------
S1     abc       ind        600
S2     pqr       ind        100

Use INNER JOIN . 使用INNER JOIN

Query 询问

select t1.id, t1.name, t1.address, sum(t2.amount) as amount
from student as t1
join fess as t2
on t1.id = t2.id
group by t1.id, t1.name, t1.address;

Since you need results for a certain date, you don't need to group by date only by student: 由于您需要特定日期的结果,因此您无需仅按学生将日期分组:

select s.id, s.name, s.address, sum(f.amount) amount
from student s left join fees f 
on f.id = s.id
where f.date = '02-2019'
group by s.id, s.name, s.address;

See the demo . 参见演示 Results: 结果:

| id  | name | address | amount |
| --- | ---- | ------- | ------ |
| S1  | abc  | ind     | 600    |
| S2  | pqr  | ind     | 100    |

In your expected results the amount for id='S2' and date = '02-2019' should be 100 , right? 在您的预期结果中, id='S2'date = '02-2019'应为100 ,对吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM