2 개 이상의 테이블에 대한 내부 조인

Vighanesh Gursale

나는 3 개 개의 테이블이 balance, received, expenses그 데이터를 다음과 같이한다. 받은 테이블 :

mysql> select * from received;
+-----+---------+-----------------+---------------------+
| rid | site_id | received_amount | receive_date        |
+-----+---------+-----------------+---------------------+
|   1 |       1 |             500 | 2015-08-19 18:16:51 |
|   2 |       1 |             600 | 2015-08-19 18:16:52 |                                                                                                                                       
|   3 |       1 |             500 | 2015-08-20 18:16:52 |                                                                                                                                       
|   4 |       1 |             500 | 2015-08-19 18:16:52 |
+-----+---------+-----------------+---------------------+

테이블 비용 :

mysql> select * from expenses;
+-----+---------+----------------+---------------------+
| eid | site_id | expense_amount | expense_date        |
+-----+---------+----------------+---------------------+
|   1 |       1 |            500 | 2015-08-19 18:17:11 |
+-----+---------+----------------+---------------------+

테이블 밸런스 :

mysql> select * from balance;
+----------------+---------+---------------+--------------+-----------------+-----------------+------+------+---------------------+
| transaction_id | site_id | account_title | particulars  | opening_balance | closing_balance | rid  | eid  | transaction_date    |
+----------------+---------+---------------+--------------+-----------------+-----------------+------+------+---------------------+
|              1 |       1 | test1         | test1 values |               0 |             500 |    1 | NULL | 2015-08-19 18:16:51 |
|              2 |       1 | test1         | test1 values |             500 |            1100 |    2 | NULL | 2015-08-19 18:16:52 |
|              3 |       1 | test1         | test1 values |            1100 |            1600 |    3 | NULL | 2015-08-20 18:16:52 |
|              4 |       1 | test1         | test1 values |            1100 |            1600 |    4 | NULL | 2015-08-19 18:16:52 |
|              5 |       1 | test1         | test1 values |            1600 |            1100 | NULL |    1 | 2015-08-19 18:17:11 |
+----------------+---------+---------------+--------------+-----------------+-----------------+------+------+---------------------+

다음 쿼리를 사용하여받은 금액과 비용을 잔액 테이블에 병합하려고하지만 어떻게 든 올바른 방법을 얻을 수 없습니다.

select 
      b.transaction_id,
      b.site_id,
      b.account_title,
      b.particulars,
      b.opening_balance,
      r.received_amount,
      e.expense_amount,
      b.closing_balance,
      b.transaction_date 
   from 
      balance b 
         inner join received r 
            on b.site_id = r.site_id 
         inner join expenses e 
            on b.site_id = e.site_id 
   group by 
      b.transaction_id;

이 출력을 얻으려고합니다

+----------------+---------+---------------+--------------+-----------------+-----------------+----------------+-----------------+---------------------+
| transaction_id | site_id | account_title | particulars  | opening_balance | received_amount | expense_amount | closing_balance | transaction_date    |
+----------------+---------+---------------+--------------+-----------------+-----------------+----------------+-----------------+---------------------+
|              1 |       1 | test1         | test1 values |               0 |             500 |            NULL |             500 | 2015-08-19 18:16:51 |
|              2 |       1 | test1         | test1 values |             500 |             600 |            NULL |            1100 | 2015-08-19 18:16:52 |
|              3 |       1 | test1         | test1 values |            1100 |             500 |            NULL |            1600 | 2015-08-20 18:16:52 |
|              4 |       1 | test1         | test1 values |            1600 |             NULL |            500 |            1100 | 2015-08-19 18:16:52 |
|              5 |       1 | test1         | test1 values |            1100 |             500 |            NULL |            1600 | 2015-08-19 18:17:11 |
+----------------+---------+---------------+--------------+-----------------+-----------------+----------------+-----------------+---------------------+
베이지

당신은 다소 가깝습니다. INNER JOIN 대신 영수증과 비용에 LEFT-JOIN을해야합니다. "Balance"테이블에는 모든 트랜잭션이 있으므로 기본 지원 테이블 내에서 표시되는 항목을 구동합니다. 또한 사이트 ID에 조인하는 것이 아니라 "rID"및 "eID"만 테이블에 대한 기본 키가 될 수 있기 때문입니다.

잔액 테이블의 기본 키이며 주어진 ID로 항목이 하나만 있으므로 트랜잭션 ID로 그룹화 할 필요가 없습니다.

select 
      b.transaction_id,
      b.site_id,
      b.account_title,
      b.particulars,
      b.opening_balance,
      r.received_amount,
      e.expense_amount,
      b.closing_balance,
      b.transaction_date 
   from 
      balance b 
         LEFT join received r 
            on b.rid = r.rid
            AND b.site_id = r.site_id 
         LEFT join expenses e 
            on b.eid = e.eid
            AND b.site_id = e.site_id 
   order by
      b.site_id,
      b.transaction_date

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

2 개 테이블 이상의 내부 / 외부 조인에 대한 MySQL 업데이트

분류에서Dev

3 개의 테이블 내부 조인에 대한 SQL 계산

분류에서Dev

동일한 테이블에 대한 MSSQL 두 개의 내부 조인

분류에서Dev

SQL 데이터베이스에서 2 개의 테이블 또는 외래 키를 사용한 내부 조인?

분류에서Dev

2 개의 테이블에 대한 SQL 조인 문

분류에서Dev

세 개의 테이블에 대한 왼쪽 외부 조인?

분류에서Dev

조건부 테이블 2 개에 대한 SQl 쿼리

분류에서Dev

2 개의 테이블이있는 MySQL 내부 조인 쿼리

분류에서Dev

내부 조인이있는 2 개 테이블의 mysql 쿼리

분류에서Dev

두 개 이상의 테이블에 대한 SQL 조인

분류에서Dev

SQL을 사용하는 Access의 5 개 테이블에 대한 내부 조인 및 왼쪽 조인

분류에서Dev

다른 테이블을 대상으로하는 2 개의 정규 표현식이있는 MySQL 선택 쿼리 내부 조인 테이블

분류에서Dev

EF에서 3 개의 테이블에 대해 내부 조인 수행

분류에서Dev

mysql에서 외부 조인 테이블 (2 개 이상의 테이블)에서 값을 가져 오는 방법

분류에서Dev

3 개의 테이블 MySql을 사용한 내부 조인

분류에서Dev

3 개의 테이블을 사용한 MySQL 내부 조인

분류에서Dev

네 개의 테이블에 대한 내부 조인이 작동하지 않습니까?

분류에서Dev

2 개의 다 대다 테이블을 조인하고 인접한 부울 열 3 개를 가져옵니다.

분류에서Dev

DataSet의 여러 테이블에 대한 내부 조인

분류에서Dev

세 변수에 대한 두 테이블의 내부 조인

분류에서Dev

SQL 내부 조인 두 테이블을 오른쪽에 2 개 일치

분류에서Dev

여러 값에 대해 2 개의 MySQL 테이블 조인

분류에서Dev

동일한 테이블 및 쌍에 대한 MySQL 내부 조인

분류에서Dev

SQL 요청, 동일한 테이블에 대한 내부 조인?

분류에서Dev

두 테이블에 대한 SQL 내부 조인

분류에서Dev

셀프 테이블에 대한 내부 조인

분류에서Dev

4 테이블에 대한 내부 조인 쿼리 구문

분류에서Dev

Sequelize : 2 개 이상의 테이블 관계에 대한 OR 쿼리

분류에서Dev

2 개의 상호 의존적 인 테이블에 대한 복잡한 SQL 업데이트

Related 관련 기사

  1. 1

    2 개 테이블 이상의 내부 / 외부 조인에 대한 MySQL 업데이트

  2. 2

    3 개의 테이블 내부 조인에 대한 SQL 계산

  3. 3

    동일한 테이블에 대한 MSSQL 두 개의 내부 조인

  4. 4

    SQL 데이터베이스에서 2 개의 테이블 또는 외래 키를 사용한 내부 조인?

  5. 5

    2 개의 테이블에 대한 SQL 조인 문

  6. 6

    세 개의 테이블에 대한 왼쪽 외부 조인?

  7. 7

    조건부 테이블 2 개에 대한 SQl 쿼리

  8. 8

    2 개의 테이블이있는 MySQL 내부 조인 쿼리

  9. 9

    내부 조인이있는 2 개 테이블의 mysql 쿼리

  10. 10

    두 개 이상의 테이블에 대한 SQL 조인

  11. 11

    SQL을 사용하는 Access의 5 개 테이블에 대한 내부 조인 및 왼쪽 조인

  12. 12

    다른 테이블을 대상으로하는 2 개의 정규 표현식이있는 MySQL 선택 쿼리 내부 조인 테이블

  13. 13

    EF에서 3 개의 테이블에 대해 내부 조인 수행

  14. 14

    mysql에서 외부 조인 테이블 (2 개 이상의 테이블)에서 값을 가져 오는 방법

  15. 15

    3 개의 테이블 MySql을 사용한 내부 조인

  16. 16

    3 개의 테이블을 사용한 MySQL 내부 조인

  17. 17

    네 개의 테이블에 대한 내부 조인이 작동하지 않습니까?

  18. 18

    2 개의 다 대다 테이블을 조인하고 인접한 부울 열 3 개를 가져옵니다.

  19. 19

    DataSet의 여러 테이블에 대한 내부 조인

  20. 20

    세 변수에 대한 두 테이블의 내부 조인

  21. 21

    SQL 내부 조인 두 테이블을 오른쪽에 2 개 일치

  22. 22

    여러 값에 대해 2 개의 MySQL 테이블 조인

  23. 23

    동일한 테이블 및 쌍에 대한 MySQL 내부 조인

  24. 24

    SQL 요청, 동일한 테이블에 대한 내부 조인?

  25. 25

    두 테이블에 대한 SQL 내부 조인

  26. 26

    셀프 테이블에 대한 내부 조인

  27. 27

    4 테이블에 대한 내부 조인 쿼리 구문

  28. 28

    Sequelize : 2 개 이상의 테이블 관계에 대한 OR 쿼리

  29. 29

    2 개의 상호 의존적 인 테이블에 대한 복잡한 SQL 업데이트

뜨겁다태그

보관