我有一张学生桌和一张公司桌子。
学生表
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
答案 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)