如何使用mysql join执行此查询?

时间:2018-08-02 14:31:45

标签: mysql sql left-join

您好,我试图在此数据库上进行左联接。

表格类别:

// `category` table has 3 columns 
id,business_id (FK from business),category.

餐桌业务

// `business` table has 12 columns
id, name, etc (all info for that business)

我需要的是过滤所有属于“餐厅”的业务并将其加入相应的业务ID。

问题是每个业务都有多个类别,当我选择/加入时,结果不会返回DISTINCT业务。

这是我尝试的查询之一:

SELECT category.category,business.* 
FROM category 
INNER JOIN business 
ON category.business_id = business.id;

我还尝试了加入。但是我的电脑永远无法使用或无法正常工作。 P.S数据集为8.6G ![数据库输出]:https://i.imgur.com/eF4zYOr.png

2 个答案:

答案 0 :(得分:1)

您的查询看起来还可以,但是缺少的是您仅在寻找餐馆。但是,首先,我要确保我有一个基于category.id

的索引
create index your_index_name on your_table_name(your_column_name);

然后,您可以通过以下方式简化查询:

select a.id, a.category, b.* from category a left join business b on a.business_id=b.id WHERE a.category='Restaurants';

即使那样,8.6G的表也要花费时间。由于您说的是“ pc”而不是“ server”,所以可能要花很长时间。

答案 1 :(得分:0)

尝试一下

searchTextField.clearButtonMode = UITextFieldViewMode.whileEditing