sql查询从2个表中选择记录

时间:2015-07-31 18:15:35

标签: sql oracle

我正在开发一个使用Oracle作为后端的应用程序。我创建了两个表来记录费用明细"exp_mater"& "exp_details"

exp_master(parti_id(pk),particulars);

exp_details(exp_id(pk),parti_id(fk),amount);

table exp_master
parti_id|particulars
--------|-----------
  1     | incentive
  2     | papers
  3     | salary


table exp_details
  exp_id|parti_id|amount
------  |--------|
 e1     | 2      |200
 e2     | 1      |100
 e3     | 2      |1000

现在我想从两个表中选择所需的记录,但输出应该是:

    parti_id  | particulars | amount
--------------|-------------|-------
     2        |papers       |100
     1        |incentive    |200
     2        |papers       |100

我尝试了子查询,但我只能显示详细信息字段,而不是其他两个。是否有任何方法可以执行此操作。

提前致谢

3 个答案:

答案 0 :(得分:0)

你可以加入两个表,然后加总金额:

SELECT    m.parti_id, particulars, SUM(amount) AS amount
FROM      exp_mater m
LEFT JOIN exp_details d ON m.parti_id = d.parti_id

答案 1 :(得分:0)

SELECT    m.parti_id, particulars, SUM(amount) AS amount
FROM      exp_mater m
Inner JOIN exp_details d ON m.parti_id = d.parti_id

这里需要内连接。感谢

答案 2 :(得分:0)

取决于您的要求,

SELECT    m.parti_id, particulars, SUM(amount) AS amount
FROM      exp_mater m
Inner JOIN exp_details d ON m.parti_id = d.parti_id 
Group By m.parti_id, particulars

SELECT    m.parti_id, particulars, SUM(amount) AS amount
FROM      exp_mater m
LEFT OUTER JOIN exp_details d ON m.parti_id = d.parti_id 
Group By m.parti_id, particulars
相关问题