SQL查询 - 加入帮助(获取大量结果)

时间:2013-11-16 19:51:04

标签: sql join

我有一张学生桌和一张公司桌子。

学生表

ID

FNAME

L-NAME

COMPANY_ID

公司表

COMPANY_ID

名称

我想输出学生表数据,然后加入公司数据,公司ID将引用公司名称和行业。

以下是我正在运行的查询

SELECT id, fname, lname, company.company_id, name, type
FROM  `student` 
INNER JOIN company ON student.company_id
ORDER BY type

4 个答案:

答案 0 :(得分:1)

SELECT student_id, student_fname, student_lname, company.company_id, company_name, industry
FROM  `student` 
INNER JOIN company ON student.company_id=company.company_id
ORDER BY industry

当你加入它们时为两个表指定列。没有它们你做一个CROSS JOIN,那就是A中的每一行都与B中的所有行相关联。

答案 1 :(得分:1)

应为ON student.company_id = company.company_id

除此之外它看起来很好。

SELECT student_id, student_fname, student_lname, company.company_id, company_name, industry
FROM  `student` 
INNER JOIN company ON student.company_id = company.company_id
ORDER BY industry

答案 2 :(得分:1)

您将获得所谓的笛卡儿积A.K.A交叉连接。

连接需要指定两个表中都存在的匹配列。在您的情况下,这是company id。解决方案就在这条线上:

INNER JOIN company ON student.company_id

这一行应改为:

INNER JOIN company ON student.company_id=company.company_id

这将避免您遇到的交叉加入。

有关详细信息,请参阅this link

答案 3 :(得分:0)

你也可以写:

INNER JOIN company USING (company_id)