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