如何按另一个表中的行数排序MYSQL结果

I have 2 Tables:

1 - cat
Id|category

2 - groups
Id|groupname|category

I want to sort the data from the cat table by the number of rows in the category (group) table.

For example in groups table, category row have the following data:

Education - 20
Fun - 50
Nature - 30

I wanna show cat as:

  • Fun
  • Nature
  • Education

How can I do it?

Can't you just count the amount of rows in the one table and order your results by the resulting count?

SELECT
*,
(SELECT COUNT(*) FROM category WHERE category.cat_id=cat.id) as count
FROM cat
ORDER BY count DESC;

Note To get a better answer, you'll need to be more specific about your table structure and what you would like to achieve.