誰かが私を助けてくれることを願っています。私は MySQL にかなり慣れていないので、そのすべての機能に完全に精通しているわけではありません。
次の形式のデータを含むスプレッドシートが提供されました。
子供の名前|性別| ドブ| クラス|親の名前|親の電話番号|親の住所
これを次の 3 つのテーブルに分けました。
Child_details データ型 必須キー Child_id INT AUTO_INCREMENT NOT NULL プライマリ Child_fname VARCHAR(15) NOT NULL Child_sname VARCHAR(15) NOT NULL 性別 Enum(M,F) NOT NULL NOT NULL 生年月日 NOT NULL NOT NULL 親/介護者 ID INTEGER NOT NULL 外国 Parent_details データ型 必須キー Parent_id INT AUTO_INCREMENT NOT NULL プライマリ Parent_title CHAR(5) Paren _fname VARCHAR(15) NOT NULL Parent/_sname VARCHAR(15) NOT NULL 親 _Add1 VARCHAR(25) NOT NULL 親 _Add2 VARCHAR(25) 親 _city VARCHAR(25) 親 _Pcode VARCHAR(15) NOT NULL 親 _phone VARCHAR(15) NOT NULL アクティビティ データ型 必須キー Activity_name CHAR(8) NOT NULL Activity_day CHAR(5) NOT NULL
次に、アクティビティ データを使用して点呼リストのブリッジング テーブルを作成しました。一部の子供は 1 つのクラスを行い、一部は 3 つすべてを行います。
スケジュール データ型 必須キー Child_id INT NOT NULL 外部、複合 Activity_id INT NOT NULL 外部、複合
入力したデータが正しいかどうかを確認するために実行できるクエリを作成しようとしています。スプレッドシートと同じ形式で結果を表示できるようにしたい。これは私がこれまでに思いついたものです:
SELECT CONCAT_WS(' ',Child_fname,Child_sname) AS 'Child Name',
Child_gender AS 'Gender',
Child_dob AS 'DoB',
COUNT Activity_name AS Activities,
CONCAT_WS(' ',Parent_title,Parent_fname,Parent_sname) AS 'Parent/Carer name',
Parent_phone AS 'Parent/Carer phone',
CONCAT_WS(' ',Parent_add1,Parent_add2,Parent_city,Parent_pcode) AS 'Parent/Carer Address'
FROM Child,Activity,Parent;
しかし、私が得た結果は、各子供がすべての活動を行い、すべての活動を行っていることを示しています. 明らかな何かが欠けていますか、COUNT DISTINCT または GROUP BY を使用する必要がありますか、またはテーブルを間違って作成しましたか?
誰でも提供できる情報は大歓迎です。十分な情報を提供できたことを願っていますが、多すぎないようにしてください。