2017-06-19 215 views
1

有3個表:從幾個表選擇MySQL的

1)名稱:公司字段:COMPANY_ID,COM​​PANY_NAME;

enter image description here

2)名稱:接觸字段:CONTACT_ID,CONTACT_NAME;

enter image description here 3)name:connections,fields:connection_id,contact_id,company_id;

enter image description here

我正在多個搜索。例如,我想找到名叫「qwer」的公司,聯繫人叫做「abc」。所以我的查詢將是:

$query="SELECT * FROM COMPANIES WHERE company_name RLIKE (qwer)" 

下一步我會用這些公司的ID做一個巨大的。接下來的查詢將是這樣的:使大量從本次評選CONTACT_ID的

$query="SELECT * FROM connections WHERE company_id in (my massive)" 

,然後作出最後的查詢:

$query="SELECT * FROM contacts WHERE contact_name RLIKE(abc) and id in(my massive)" 

所以,是有可能使在一個查詢或使用更少的這一切行動行動比我用?

舉例來說,我需要找到像「ith」這樣的聯繫人稱爲「oogle」的所有公司。因此,我需要讓兩個聯繫人成爲一家「Google」公司:約翰史密斯和珍妮史密斯。

@Iqbal幫助了很多,但我有一個叫做地址的表格有兩個字段:id和street。在表格公司中,還有一個字段叫做addresses_id。於是,我就得到這樣的查詢的所有信息:

select con.connection_id, com.company_name, ctx.contact_name 
from addresses as add, connections as con 
left join companies as com on con.company_id = com.company_id 
left join contacts as ctx on con.contact_id = ctx.contact_id 
where add.id=com.Legal_address 

但它不工作,有一個錯誤:「您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊正確的語法使用近「添加,連接是騙人的LEFT JOIN公司作爲COM上con.company_id = com.id LE」第1" 行

+0

請添加一些樣本數據和expacted結果 – Jens

+0

好吧,幾分鐘的時間。 – RoGGeR

+0

@Jens我已添加) – RoGGeR

回答

1

您可以使用左連接..

如果你想open is connection_id,company_name和聯繫人姓名

select con.connection_id, com.company_name, ctx.contact_name, add.street 
from connections as con 
left join companies as com on con.company_id = com.company_id 
left join contacts as ctx on con.contact_id = ctx.contact_id 
left join addresses as add on con.addresses_id = add.addresses_id 
+0

當然,我現在正在使用左連接編碼,完成後會表揚!) – RoGGeR

+1

工作原理,謝謝!) – RoGGeR

+0

你能幫我嗎?我不明白工作是如何加入的。我有一個叫做地址的表格。我需要選擇addresses.street where addresses.id = com.company_id。我嘗試了很多方法,但它說我「在你的SQL語法中有一個錯誤」 – RoGGeR

2

嗨,你可以使用這樣的事情

select connections.connection_id, contacts.contact_id companies.companyid 
from connections 
left join companies on connections.company_id = companies.company_id 
left join contacts on contacts.contact_id = connections.contact_id 
where company_name LIKE ('%qwer%') 
and contact_name LIKE('%abc%')