簡體   English   中英

從幾個表中選擇mysql

[英]select from few tables mysql

有3個表:

1)名稱:公司,領域:company_id,company_name;

在此輸入圖像描述

2)姓名:聯系人,字段:contact_id,contact_name;

在此輸入圖像描述 3)名稱:連接,字段:connection_id,contact_id,company_id;

在此輸入圖像描述

我正在進行多次搜索。 例如,我想找到名為“qwer”的公司和名為“abc”的聯系人。 所以我的查詢將是:

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

下一步,我將與這些公司合作。 下一個查詢將是:

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

從此選擇中進行大量的contact_id,然后進行最后一次查詢:

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

那么,是否可以在一個查詢中使用所有這些操作或使用比我使用的更少的操作?

例如,我需要找到所有被稱為“oogle”的公司,其中包含“ith”等聯系人。 因此,我需要讓一家公司“Google”與兩位聯系人:John Smith和Jenny Smith。

@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服務器版本相對應的手冊,以便在'add,Connections as con LEFT JOIN Companies as com on'附近使用正確的語法con.company_id = com.id LE'在第1行“

嗨,你可以使用這樣的東西

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%')

你可以使用左連接..

如果要打開,請輸入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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM