链接表的Mysql查询

链接表的Mysql查询,mysql,Mysql,我有一个搜索表,人们可以从中选择公司的几种服务,表如下: 业务id、业务名称 业务数据 1、王子与儿子 史密斯有限公司 3、布朗 服务服务id、服务名称 服务数据 1、抛丸 2、绘画 3蒸汽清洗 业务\服务业务\标识,服务\标识 1,1 1,2 2,2 3.1 3.2 因此,如果用户选择搜索一个项目(如喷丸),sql将为: Select * FROM business Inner Join business_service On business_service.business_id =

我有一个搜索表,人们可以从中选择公司的几种服务,表如下:

业务id、业务名称

业务数据

1、王子与儿子

史密斯有限公司

3、布朗

服务服务id、服务名称

服务数据

1、抛丸

2、绘画

3蒸汽清洗

业务\服务业务\标识,服务\标识

1,1

1,2

2,2

3.1

3.2

因此,如果用户选择搜索一个项目(如喷丸),sql将为:

Select * FROM business 
Inner Join business_service On business_service.business_id  = business.business_id  
Inner Join service On service.service_id  = business_service.service_id 
WHERE business_service.service_id = 1 
这很好,但如果用户搜索提供喷丸和喷漆的业务,我希望他们看到业务id 1和3。我知道下面的sql不起作用,但我想我应该告诉大家我该怎么做

Select * FROM business 
Inner Join business_service On business_service.business_id  = business.business_id  
Inner Join service On service.service_id  = business_service.service_id 
WHERE business_service.service_id = 1 And business_service.service_id = 2

我知道这很简单,但我就是想不通。用或代替AND。使用和平均回报业务\服务,其中服务id同时为1和2。相反,您需要服务id=1或服务id=2的行,您可以在

您可以使用in而不是where,理想情况下,您应该为服务id 1或2设置OR条件。你会是这样的

 Select * FROM business 
Inner Join business_service On business_service.business_id  = business.business_id  
Inner Join service On service.service_id  = business_service.service_id 
WHERE business_service.service_id in (1,2)

这应该是1,2的值,您所输入的内容根本不应该给出任何结果,但它确实给出了…它表明business_id 1和3 whp在表中没有service_id值谢谢,但这给出了以下错误:操作数应该包含1列si put an=而不是in。。很抱歉,谢谢,但我只想向提供这两种服务的企业展示一下
 Select * FROM business 
Inner Join business_service On business_service.business_id  = business.business_id  
Inner Join service On service.service_id  = business_service.service_id 
WHERE business_service.service_id in (1,2)