2012-04-27 10 views
0

私は誰かが私を助けることを望んでいます。私はMySQLには新しかったので、すべての機能に精通していません。MySQLでのデータの確認

Iの形式のデータでスプレッドシートを与えた:

 
child Name |Gender| dob| class|Parent name|parent phone|parent address 

Iはから成る3つのテーブルにこれを分離:

 
Child_details Datatype Required Key 
Child_id INT AUTO_INCREMENT NOT NULL Primary 
Child_fname VARCHAR(15)  NOT NULL  
Child_sname VARCHAR(15)  NOT NULL  
Gender Enum(M,F) NOT NULL NOT NULL  
DoB DATE NOT NULL NOT NULL  
Parent/Carer id INTEGER NOT NULL Foreign 


Parent_details Datatype Required Key 
Parent_id INT AUTO_INCREMENT NOT NULL Primary 
Parent_title CHAR(5)  
Paren _fname VARCHAR(15)  NOT NULL  
Parent/_sname VARCHAR(15)  NOT NULL  
Parent _Add1 VARCHAR(25)  NOT NULL  
Parent _Add2 VARCHAR(25)   
Parent _city VARCHAR(25)   
Parent _Pcode VARCHAR(15)  NOT NULL  
Parent _phone VARCHAR(15)  NOT NULL  


Activity Datatype Required Key 
Activity_name CHAR(8) NOT NULL  
Activity_day CHAR(5) NOT NULL  

をその後でロールコールリストのブリッジングテーブルを作っアクティビティデータ私は私が入力したデータが正しいかどうかを確認するために実行できるクエリを記述しようとしている

 
Schedule Datatype Required Key 
Child_id INT NOT NULL Foreign, Composite 
Activity_id INT NOT NULL Foreign, Composite 

:子供たちの中には、一つのクラス、いくつかは、すべての3つの操作を行う操作を行います。私は結果をスプレッドシートと同じフォーマットで見ることができるようにしたい。

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を使用する必要がありますか、またはテーブルを間違って作成しましたか?

誰もが提供できる情報は非常に高く評価されます。 私は十分な情報を提供したが、それほど多くはないと思います。

+0

あなたの 'Activity'テーブルには、' Schedule'テーブルの 'Activity_id'フィールドが参照するカラムは含まれていませんか? – eggyal

答えて

0

あなたは(あなたが説明するように、この情報がないと、それは、他のすべてのテーブルのすべての行で各テーブルのすべての行を結合)一緒にテーブルを結合する方法MySQLを伝える必要があります:

SELECT 
    ... 
FROM 
     Child 
    JOIN Schedule USING (Child_id) 
    JOIN Activity USING (Activity_id) -- does this column exist in Activity? 
    JOIN Parent USING (Parent_id) -- does this column exist in Child? 

あなたが望むかもしれませんいくつかはtutorials on SQL JOINに従ってください。

+0

ありがとう、私はそれを行ってあげるよ。あなたは正しいです、私はSQL上でいくつかのチュートリアルを行う必要があります。私の大学はw3schoolsを勧めましたが、私はそれが役に立つとは思っていませんでした。 – user1361276