現在有兩張表,第一張表有學生姓名,語文,數學,英語成績,數據量46萬。第二張表有學生姓名,物理,化學,政治成績,數據量10萬。 1. 找出既參加了table1,也參加了table2的考試的學生的數學和物理成績: SELECT achievement_1.name, achievement_1.mat ...
現在有兩張表,第一張表有學生姓名,語文,數學,英語成績,數據量46萬。第二張表有學生姓名,物理,化學,政治成績,數據量10萬。
1. 找出既參加了table1,也參加了table2的考試的學生的數學和物理成績:
SELECT achievement_1.name, achievement_1.math, achievement_2.physics FROM achievement_1 INNER JOIN achievement_2 ON achievement_1.name = achievement_2.name ORDER BY achievement_1.name; SELECT achievement_1.name, achievement_1.math, achievement_2.physics FROM achievement_1, achievement_2 WHERE achievement_1.name = achievement_2.name;
結果:
2. 現在想找出table1中所有學生的數學成績,以及他的物理成績,如果有的話。
SELECT achievement_1.name, achievement_1.math, achievement_2.physics from achievement_1 LEFT JOIN achievement_2 ON achievement_1.name = achievement_2.name ORDER BY achievement_1.name;
部分結果:
一開始沒有建立索引,查詢了幾分鐘都沒結果。建立了索引之後,瞬間出結果。索引: