除了通过Left Join将多个表进行关联外,也可以通过以下方式进行多表之间的关联。
SELECT FROM Table1,Table2
该种关联方式可以理解成 Table1 * Table2
当存在Table1中有以下数据:
id | name | age | female |
---|---|---|---|
1 | a | 10 | 1 |
2 | b | 11 | 0 |
3 | c | 12 | 1 |
Table2中有以下数据:
category | price | stage |
---|---|---|
语文 | 20 | 5 |
数学 | 30 | 6 |
英语 | 30 | 7 |
当执行完SELECT * FROM Table1,Table2
,就会得到以下的表:
id | name | age | female | category | price | stage |
---|---|---|---|---|---|---|
1 | a | 10 | 1 | 语文 | 20 | 5 |
2 | b | 11 | 0 | 语文 | 20 | 5 |
3 | c | 12 | 1 | 语文 | 20 | 5 |
1 | a | 10 | 1 | 数学 | 30 | 6 |
2 | b | 11 | 0 | 数学 | 30 | 6 |
3 | c | 12 | 1 | 数学 | 30 | 6 |
1 | a | 10 | 1 | 英语 | 30 | 7 |
2 | b | 11 | 0 | 英语 | 30 | 7 |
3 | c | 12 | 1 | 英语 | 30 | 7 |
Multi Table的Where只是用于筛选数据,筛选出需要做笛卡尔积的Rows。例如SELECT * FROM Table1,Table2 Where Table1.id = 1
,则得到的表如下:
id | name | age | female | category | price | stage |
---|---|---|---|---|---|---|
1 | a | 10 | 1 | 语文 | 20 | 5 |
1 | a | 10 | 1 | 数学 | 30 | 6 |
1 | a | 10 | 1 | 英语 | 30 | 7 |