Php 从几个表中选择mysql

Php 从几个表中选择mysql,php,mysql,Php,Mysql,有三张桌子: 1) 名称:公司,字段:公司id,公司名称 2) 姓名:联系人,字段:联系人id,联系人姓名 3) 名称:连接,字段:连接id,联系人id,公司id 我正在进行多次搜索。例如,我想找到像“qwer”这样的公司和像“abc”这样的联系人。因此,我的问题是: $query="SELECT * FROM COMPANIES WHERE company_name RLIKE (qwer)" 下一步我将用这些公司的id做一个大规模的调查。下一个查询将类似于: $query="SELE

有三张桌子:

1) 名称:公司,字段:公司id,公司名称

2) 姓名:联系人,字段:联系人id,联系人姓名

3) 名称:连接,字段:连接id,联系人id,公司id

我正在进行多次搜索。例如,我想找到像“qwer”这样的公司和像“abc”这样的联系人。因此,我的问题是:

$query="SELECT * FROM COMPANIES WHERE company_name RLIKE (qwer)"
下一步我将用这些公司的id做一个大规模的调查。下一个查询将类似于:

$query="SELECT * FROM connections WHERE company_id in (my massive)"
从该选择中提取大量联系人id,然后进行最后一次查询:

$query="SELECT * FROM contacts WHERE contact_name RLIKE(abc) and id in(my massive)"
那么,是否可以在一个查询中执行所有这些操作,或者使用比我使用的更少的操作

例如,我需要找到所有名为“oogle”的公司,其联系人为“ith”。因此,我需要一个公司“谷歌”与两个联系人:约翰·史密斯和詹妮·史密斯

@Iqbal帮助很大,但我还有一个名为addresses的表,它有两个字段:id和street。在表companys中还有一个字段名为addresses\u 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服务器版本相对应的手册,以了解在第1行使用“添加,连接作为con LEFT JOIN companys as com on con.company_id=com.id LE”的正确语法”

您可以使用LEFT JOIN

如果要打开的是连接id、公司名称和联系人名称

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

嗨,你可以用这样的东西

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

请添加一些示例数据和expact resultOk,几分钟。@Jens我已经添加)为什么不使用join它对您有用吗?当然,我现在正在使用left join进行编码,完成后将推荐!)你能帮助我吗?我不太明白左撇子是怎么工作的。我还有一张叫做地址的表格。我需要选择addresses.street where addresses.id=com.company\u id。我尝试了很多方法,但它说我“在您的SQL语法中有一个错误”,我已经更改了我的应答器tnx!在最后一行,写con.address\u id=addr.id或addr.id=con.address\u id有关系吗?con是连接,其中在连接中声明为con。所以,con.address_id=addr.id或addr.id=con.address_id是连接表中的地址字段=addres表中的字段id的条件。对不起,如果我的英语不好