今回も複数テーブルの結合について解説します。
前回の記事、【SAS】SQLにおける複数テーブルの結合 その1【UNION ALL】 | ビジネスイッチ (how-to-business.com)の続きとなります。
/* inner join_1 */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
proc sql;
create table data3 AS
select * from data1 inner join data2 on data1.Id1 = data2.Id1;
quit;
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_1_1.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_1_2.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_1_3.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_1_4.png)
- 名前が全く同じ列は表示されない。
/* data1,data2_1 */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2;
Id4=1111; Id5=1111; Id6=1111;
output;
Id4=2222; Id5=2222; Id6=2222;
output;
Id4=3333; Id5=3333; Id6=3333;
output;
run;
proc sql;
create table data3 AS
select * from data1,data2;
quit;
![](https://how-to-business.com/wp-content/uploads/2022/02/data1data2_1_1.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/data1data2_1_2.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/data1data2_1_3.png)
- from句に複数テーブルあるときは、結合されてデカルト積になる。
/* inner join_2 */
data data1;
Id1=1111; Id2=1111; Id3=1111;
output;
Id1=2222; Id2=2222; Id3=2222;
output;
Id1=3333; Id2=3333; Id3=3333;
output;
run;
data data2;
Id4=1111; Id5=1111; Id6=1111;
output;
Id4=2222; Id5=2222; Id6=2222;
output;
Id4=3333; Id5=3333; Id6=3333;
output;
run;
proc sql;
create table data3 AS
select * from data1 inner join data2 on data1.Id1 = data2.Id4;
quit;
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_2_1.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_2_2.png)
![](https://how-to-business.com/wp-content/uploads/2022/02/inner-join_2_3.png)
- data1.Id1 = data2.Id4で一致したレコードを結合する。