2 つのテーブル。最初のテーブルはすべての人を保持し、別のテーブルはどの人が家族の一員として子供であるかを指定するために使用されます。
create table persons(
personID bigint primary key auto_increment,
firstName varchar(30) not null,
lastName varchar(30) not null
);
create table kids(
personID bigint not null,
familyID bigint not null,
grade bigint,
constraint kidReference foreign key (personID) references persons (personID),
constraint familyReference foreign key (familyID) references families (familyID)
);
子供である各人についてすべての詳細を選択したいと思います。次のクエリを使用すると、同じ結果、同じ実行計画が得られます。
(1)コンマ区切り結合:
select persons.personID, persons.firstName, persons.lastName, kids.familyID, kids.grade from persons, kids where persons.personID = kids.personID;
(2)自然結合:
select * from persons natural join kids;
(3)名前付き結合:
select * from persons join kids using (personID);
(4)条件結合:
select * from persons inner join kids on persons.personID = kids.personID;
単なる読みやすさの問題ですか?そして、クエリを作成するときは、-what-it-works-best- だけを目指すべきですか?