PHP / MySQL - 根据表2中的计数从table1获取结果

时间:2015-09-28 09:20:11

标签: php mysql join

我有2个表,table1和table2,它们通过id(table1)和b_id(table2)链接。

table1有关键字数据,我希望获取相关结果(只是一个简单的%,如%)(id,keyword_data)。

table2简单记录结果有的结果,(id,b_id,b_date)

我想默认选择视图最少的记录,每次限制为7个结果。

我有以下但我知道它看起来不正确!

SELECT * FROM table1 WHERE keyword_data LIKE '%xxxx%' INNER JOIN table2 ON table1.id = table2.b_id WHERE ORDER BY COUNT(table2.id) ASC LIMIT 7;

由于

1 个答案:

答案 0 :(得分:1)

错误是

  • ORDER BY COUNT(table2.id)将被视为' ORDER BY 8' COUNT(table2.id)结果为数值
  • 你有两个' WHERE'条款。
  • 条件置于查询中的错误位置。

更正后的版本(根据我对逻辑的理解)。

SELECT distinct(A.id),A.keyword_data,(select count(table2.b_id) from table2 where table2.b_id=A.id) as count FROM table1 A INNER JOIN table2 B ON A.id = B.b_id WHERE A.keyword_data LIKE '%test%' order by count asc LIMIT 7