如果对应的表有记录,则Mysql查询获取结果

时间:2014-12-11 11:34:45

标签: php mysql

如果相应的表有记录,我想从一个表中获取记录。

我正在使用此查询。

SELECT `category_name`, `id` as cat_id FROM categories  WHERE (SELECT count(id)> 0 FROM `articles` where `category_id` = cat_id)  ORDER by `category_name` ASC

抛出错误 unknow cat_id

任何想法。怎么做

Thankse

1 个答案:

答案 0 :(得分:1)

内部联接可以做到这一点

select
c.category_name,
c.id as cat_id FROM categories c
join articles a on a.category_id = c.id
order by c.category_name

对于性能,请确保将连接键编入索引

我建议有一些东西

alter table categories add index id_idx(id);
alter table categories add index category_name_idx(category_name);

alter table articles add index category_id_idx(category_id)