验证MySQL中的数据

时间:2012-04-27 13:59:37

标签: mysql verification

我希望有人可以帮助我。我对MySQL很陌生,所以我并不完全了解它的所有功能。

我收到了一份包含格式数据的电子表格:

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

我将其分为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

我正在尝试编写一个可以运行的查询来检查我输入的数据是否正确。我希望能够以与电子表格相同的格式查看结果。这是我到目前为止所提出的:

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,还是我创建了错误的表?

任何人都能提供的任何信息都将不胜感激。 我希望我提供了足够的信息,但不是太多。

1 个答案:

答案 0 :(得分: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