Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按受欢迎程度排序_Php_Mysql_Sql - Fatal编程技术网

Php 按受欢迎程度排序

Php 按受欢迎程度排序,php,mysql,sql,Php,Mysql,Sql,我有两列“meta_value”和“field_id”的“records”表: Item_id表示网站上提交的表格的id, 字段\u id-表单中的参数名称 和meta_值-此参数的值。 field\u id=1是此人的姓名(值存储在meta\u value中),field\u id=2是此人输入的关键字(值存储在meta\u value中) 我需要做的是显示前5名的人员,他们输入“booked”作为关键字的次数最多。 我不太擅长MySQL请求,所以也许有人可以帮助我?我做到了: SELECT

我有两列“meta_value”和“field_id”的“records”表:

Item_id
表示网站上提交的表格的id,
字段\u id
-表单中的参数名称
meta_值
-此参数的值。

field\u id=1
是此人的姓名(值存储在
meta\u value
中),
field\u id=2
是此人输入的关键字(值存储在
meta\u value
中)

我需要做的是显示前5名的人员,他们输入“booked”作为关键字的次数最多。
我不太擅长MySQL请求,所以也许有人可以帮助我?

我做到了:

SELECT t3.name, COUNT(*) as Cnt FROM 
(SELECT t1.meta_value AS name, t2.meta_value AS type, t2.item_id AS field_id  FROM 
( SELECT * FROM wp_frm_item_metas WHERE field_id=9) AS t1 INNER JOIN ( SELECT * FROM wp_frm_item_metas WHERE field_id=13) AS t2 ON t1.item_id = t2.item_id WHERE t2.meta_value="Booked") AS t3   GROUP BY t3.name ORDER BY Cnt DESC

欢迎来到StackOverflow。由于这几乎肯定是家庭作业(请贴上这样的标签),我们需要请您向我们展示您的尝试。。。我们会提供帮助,但我们不会为您这样做。因为您在数据中有元值、字段ID和表单ID,但与人无关,所以看起来您似乎忽略了问题中的一些重要信息。您如何知道哪个人输入了元数据为“Booked”的数据?(由于数据显示“已预订”,这可能是需要的,而不是“预订”。遗憾的是,计算机需要如此精确和细致。)另一个提示:需要
计数
+
分组依据
也很容易排序依据和限制,但如果使用
选择…,我如何计算每个人的“预订”关键字。。。。计数(…)。。。其中…分组方式。。。订购人。。。。限制…
您将获得答案。请参阅选择语法[Mysql选择语法]()
SELECT t3.name, COUNT(*) as Cnt FROM 
(SELECT t1.meta_value AS name, t2.meta_value AS type, t2.item_id AS field_id  FROM 
( SELECT * FROM wp_frm_item_metas WHERE field_id=9) AS t1 INNER JOIN ( SELECT * FROM wp_frm_item_metas WHERE field_id=13) AS t2 ON t1.item_id = t2.item_id WHERE t2.meta_value="Booked") AS t3   GROUP BY t3.name ORDER BY Cnt DESC