基于类别的Mysql查询
嗨,我有3张桌子,如下所示: 业务:基于类别的Mysql查询,mysql,database,Mysql,Database,嗨,我有3张桌子,如下所示: 业务: business_id business_name cat_id sub_cat_id 1 bz1 1 1001 2 bz2 1 1005 3 bz3 2 2001 4 bz4 1 1001 业务类别: cat_id cat_name 1
business_id business_name cat_id sub_cat_id
1 bz1 1 1001
2 bz2 1 1005
3 bz3 2 2001
4 bz4 1 1001
业务类别:
cat_id cat_name
1 Restaurant
2 Food
3 Travel
b_sub_cat_id b_subcat_name b_maincat_id
1001 Italian 1
1002 French 1
1003 Asian 1
2001 Bagels 2
业务子类别:
cat_id cat_name
1 Restaurant
2 Food
3 Travel
b_sub_cat_id b_subcat_name b_maincat_id
1001 Italian 1
1002 French 1
1003 Asian 1
2001 Bagels 2
现在,当我想基于b_subcat_name
使用like查找业务时,我的查询似乎无法正常工作。以下是我的问题:
SELECT `b`.`business_name`, `b`.`cat_id`, `b`.`business_id`, `bc`.`cat_name`, `bsc`.`b_subcat_name`, `bsc`.`b_sub_cat_id` FROM `business` AS `b` INNER JOIN `business_category` AS `bc` ON b.cat_id = bc.cat_id INNER JOIN `business_sub_category` AS `bsc` ON b.sub_cat_id = bsc.b_sub_cat_id WHERE (bc.cat_name like 'italian%') OR (bc.cat_name like '%italian') OR (bc.cat_name = 'italian')
谢谢 我认为您应该在
WHERE
子句中使用b_subcat_name
,因为没有cat_name
具有值containsItaly
尝试更改此选项:
SELECT `b`.`business_name`, `b`.`cat_id`, `b`.`business_id`, `bc`.`cat_name`, `bsc`.`b_subcat_name`, `bsc`.`b_sub_cat_id` FROM `business` AS `b` INNER JOIN `business_category` AS `bc` ON b.cat_id = bc.cat_id INNER JOIN `business_sub_category` AS `bsc` ON b.sub_cat_id = bsc.b_sub_cat_id WHERE (bc.cat_name like 'italian%') OR (bc.cat_name like '%italian') OR (bc.cat_name = 'italian')
到
“工作不好”是什么意思?