I have 3 database tables, table A, table B, Table C. Table B And Table C are different name and have same columns name, and table C have two columns more from table b and table C rows of data can be more than table B.
Table A
-----------------------------------
ContractNo | Contact
-----------------------------------
001 | AAA
Table B
---------------------------
ID | ContractNo | Column A
---------------------------
1 | 001 | Info A1
2 | 001 | Info A2
Table C
---------------------------------------
ID | ContractNo | Column A | Column B
---------------------------------------
6 | 001 | Info A1 | Info AA1
7 | 001 | Info A2 | Info AA2
8 | 001 | Info A3 | Info AA3
When I query:
SELECT * FROM tableA as A
INNER JOIN tableB AS B ON A.ContractNo = B.ContractNo
INNER JOIN tableC AS C ON A.ContractNo = C.ContractNo
WHERE A.ContractNo = '001'
The Result:
-----------------------------------------------------------------------------
ContractNo | Contact | ID | Column A | ID | ContractNo | Column A | Column B
-----------------------------------------------------------------------------
001 | AAA | 1 | Info A1 | 6 | 001 | Info A1 | Info AA1
001 | AAA | 1 | Info A1 | 7 | 001 | Info A2 | Info AA2
001 | AAA | 1 | Info A1 | 8 | 001 | Info A3 | Info AA3
001 | AAA | 2 | Info A2 | 6 | 001 | Info A1 | Info AA1
001 | AAA | 2 | Info A2 | 7 | 001 | Info A2 | Info AA2
001 | AAA | 2 | Info A2 | 8 | 001 | Info A3 | Info AA3
Expected Result:
ContractNo | Contact | ID | Column A | ID | ContractNo | Column A | Column B
-----------------------------------------------------------------------------
001 | AAA | 1 | Info A1 | 6 | 001 | Info A1 | Info AA1
001 | AAA | 2 | Info A2 | 7 | 001 | Info A2 | Info AA2
001 | AAA | NULL | NULL | 8 | 001 | Info A3 | Info AA3
And if there are 3 rows data in table B with ContractNo = '001' and 4 rows in table C with ContractNo = '001', I got 12 rows as result. Expected result 4 rows.