将两个mysql表与公司和联系人合并

时间:2017-07-18 11:41:11

标签: mysql select

我在mysql中有两个表格。第一个拥有公司,第二个拥有为这些公司工作的联系人。

有些公司没有联系人,有几个联系人可以为一家公司工作,但没有公司就没有联系。

表格如下:

公司表

company_id
company_name
company_telephone

联系表

contact_id
works_for_company_id
contact_fullname
contact_telephone

我正在尝试将两个表与一个select语句组合,以便为每个条目创建电话号码列表,例如: G。一个有两个联系人的公司会产生三个条目,每个条目都有一行中的公司名称和电话号码。

我尝试了JOIN语句,这些语句都显示了联系人,但没有显示其背后的公司,我尝试了UNION(由于列名不同而无法工作)。我还缺少什么?任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:1)

你将join和union结合起来 - 但是你必须重命名不同名称的列(通过<a [mdMenuTriggerFor]="appMenu">Menu</a> <md-menu #appMenu="mdMenu"> <button md-menu-item> Item1 </button> <button md-menu-item> Item2 </button> <button md-menu-item> Item3 </button> </md-menu> ):

AS

答案 1 :(得分:0)

您需要的只是直接加入以获取所有细节。您可以用相关的列名替换*:

SELECT *
FROM CONTACTS_TABLE con
JOIN COMPANY_TABLE cta ON cta.company_id = con.works_for_company_id

答案 2 :(得分:0)

正如人们在之前的评论中告诉你的那样,你需要一个加入/内部联接

npm install react-test-renderer@15.6.1 --save --only=dev

答案 3 :(得分:0)

UNION运算符用于组合两个或多个SELECT语句的结果集。

  • UNION中的每个SELECT语句必须具有相同的编号 列
  • 列也必须具有类似的数据类型
  • 每个SELECT语句中的列也必须采用相同的顺序

    SELECT companycompany_namecompanycompany_telephone 来自company WHERE company.company_id = 1 联盟 选择contactcontact_fullnamecontactcontact_fullname 来自company 加入contact companycompany_id = contactworks_for_company_idcompanycompany_id = 1 限制0,30

答案 4 :(得分:0)

有些公司没有联系人所以你需要使用LEFT JOIN

SELECT com.company_name,com.telephone ,com.company_id, con.contact_fullname
FROM company com
LEFT JOIN contacts con ON com.company_id = con.works_for_company_id;