人、コーチ、選手、試合の 4 つのテーブルがあります。返される SQL SELECT ステートメントを作成する必要があります: 私の ID、名前、生年月日、参加日、登録されているコーチの名前、試合の日付、時間、期間。
person テーブルは、個人 ID、名前、生年月日、およびその他の不要な値で構成されます。コーチ テーブルは、コーチ ID とその他の不要な値で構成されます。プレーヤー テーブルは、プレーヤー ID、参加日、参加者で構成されます。ゲーム テーブルは、コーチ ID、プレーヤー ID、試合日、試合時間、試合時間で構成されます。
person テーブルには、基本的に、コーチと選手の両方の名前と主な詳細がすべて格納されます。テーブルは正しくリンクされています。
私はさまざまなステートメントを試しましたが、完全に混乱しました。例はちょっと不自由です。私は何か他のものを持っていましたが、どうすればいいのか本当にわかりません。
例えば
SELECT person_id, full_name, date_of_birth, join_date
FROM (person JOIN player ON player_id = person_id)
WHERE person_id='100' AND person_id, full_name
FROM (person JOIN coach ON coach_id = person_id);
これらは CREATE ステートメントです。
CREATE TABLE person (
person_id CHAR(10) NOT NULL,
full_name VARCHAR(54) NOT NULL,
date_of_birth DATE,
sex CHAR(1),
PRIMARY KEY (person_id)
) engine innodb;
CREATE TABLE coach (
coach_id CHAR(10) NOT NULL,
phone_no CHAR(10) NOT NULL,
hall_no CHAR(4) NOT NULL,
PRIMARY KEY (coach_id),
FOREIGN KEY (coach_id) REFERENCES person (person_id)
) engine innodb;
CREATE TABLE player (
player_id CHAR(10) NOT NULL,
join_date DATE NOT NULL,
joined_with CHAR(10),
PRIMARY KEY (player_id),
FOREIGN KEY (player_id) REFERENCES person (person_id),
FOREIGN KEY (joined_with) REFERENCES coach (coach_id)
) engine innodb;
CREATE TABLE game (
coach_id CHAR(10) NOT NULL,
player_id CHAR(10) NOT NULL,
game_date DATE NOT NULL,
game_time TIME NOT NULL,
game_duration INTEGER DEFAULT 10,
PRIMARY KEY (coach_id, player_id, game_date, game_time),
FOREIGN KEY (coach_id) REFERENCES coach (coach_id),
FOREIGN KEY (player_id) REFERENCES player (player_id)
) engine innodb;