First, let's look at some of the simplest examples.
Example
Table A
Aid Adate
1 A1
2 A2
3 A3
TableB
Bid Bdate
1 B1
2 B2
4 B4
Two tables A, B connected, to remove fields with the same ID
SELECT * from a INNER join B on a.aid = B.bid This is only the matching data is taken out.
At this point, the removal is:
1 A1 B1
2 A2 B2
Then the left join means:
SELECT * from a LEFT join B on a.aid = B.bid
First remove all the data from the a table, and then add the data that matches the A/b
At this point, the removal is:
1 A1 B1
2 A2 B2
3 A3 NULL character
There's also right join.
Refers to the first to remove all the data in the B table, and then add the data that matches the
At this point, the removal is:
1 A1 B1
2 A2 B2
4 NULL character B4
Left JOIN or left OUTER join.
The result set of the left outer join includes all rows of the left table specified in the OUTER clause, not just the rows that match the joined columns. If a row in the left table does not have a matching row in the right table, all select list columns in the right table in the associated result set row are null values
Two. Left Join/right Join/inner Join operation Demo
Table A records the following:
AID Anum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
Table B records the following:
BID bname
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
The experiment is as follows:
1. Left Join
The SQL statements are as follows:
SELECT * from A
Left JOIN B
On a.aid = B.bid
The results are as follows:
AID Anum BID bname
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(The number of rows affected is 5 rows)
Result Description:
The left join is based on the records of Table A, a can be regarded as the right table, and B can be regarded as left table.
In other words, the records of the left table (A) will all be represented, and the right table (B) will only display records that match the search criteria (in the example: A.aid = b.bid).
The low-record of table B is null.
2. Right Join
The SQL statements are as follows:
SELECT * from A
Right JOIN B
On a.aid = B.bid
The results are as follows:
AID Anum BID bname
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(The number of rows affected is 5 rows)
Result Description:
Looking closely, you will find that the result of the left join is exactly the opposite, this time it is based on the right table (B), where a table is not enough to fill with null.
3.inner Join
The SQL statements are as follows:
SELECT * from A
Innerjoin B
On a.aid = B.bid
The results are as follows:
AID Anum BID bname
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
Result Description:
Obviously, only a.aid = B.bid records are shown here. This shows that inner join is not based on who, it only shows records that match the criteria.
Connection of database tables (left JOIN, right join, Inner join) usage