SQL - 分类数据

时间:2014-02-04 19:28:46

标签: sql

所以,我的学校老师让我从现有数据库中分配一些数据。 这很容易手动完成,但如果超过100条记录,那就太好了。

这是他问我的:有单独的表格。一个叫做“CONTACTS”并有2个colums(ID,name);第二个叫做EMAILS;和第三个CONT_EMAIL。

他希望通过联系人对电子邮件进行分组。 例如:

Cont1  |  email1
Cont1  |  email12375
Cont2  | email 7
Cont8  | email 13
Cont8  | email 500
Cont8  | email 26
Cont23 | email 95

有些联系人有几封电子邮件,这就是为什么它会显示多次相同的联系人名称。

这甚至可以实现吗?我的意思是,除了ID部分之外,表之间没有明显的相关性。但即使是那个也是混乱的。 CONTACTS.ID与EMAILS.ID无关 下面显示了如何安排表格,以获得视觉辅助。

CONTACTS
ID  |  name

EMAILS
ID  |  email

CONT_EMAIL 
ID  | name_ID  |  email_ID

1 个答案:

答案 0 :(得分:1)

怎么样:

SELECT  
    CONTACTS.name,
    EMAILS.email
FROM 
CONT_EMAIL INNER JOIN CONTACTS 
ON CONT_EMAIL.name_ID = CONTACTS.ID
INNER JOIN EMAILS
ON CONT_EMAIL.email_ID = EMAILS.ID
ORDER BY CONTACTS.name;

这适用于任何数据库系统。