0

好吧,让我们开始吧。

我有 2 个表,一个用于存储可以选择的选项,另一个用于存储有多少人选择了该选项。

所以表1:

id, option_name, description

表 2:

id, chosen_by_who

基本上,如果“John”选择“Cat”(表 1 中的 id:3),我的脚本将插入 (3, john),如果 5 个人选择“cat”,则“cat”的计数将有 5 个,所以我打算如何进行统计。

问题出在我的统计数据中:“3”被 5 个人选中。

我想说“猫”是由 5 个人选择的。

由于Cat在表1中具有相同的ID,因此我想将它们链接起来并将3定义为cat。

这就是我统计我的统计数据的方式:

$query = $pdo->prepare("SELECT  `optionid` , COUNT(  `optionid` ) AS times 
                        FROM  `has_picked` GROUP BY  `optionid`");
$query->execute();

所以基本上我想定义 1 为狗,2 为兔子,3 为猫,依此类推

4

2 回答 2

1

您必须访问JOIN这些表,因此您可以从这两个表中访问列:

 SELECT  
     t2.option_name, 
     COUNT(t1.optionid) AS times 
 FROM  
     has_picked t1
 JOIN
     my_options t2 ON(t2.id = t1.optionid)
 GROUP BY  
     t1.optionid
于 2013-09-22T15:10:36.597 回答
0

要组合来自多个表的行,请考虑使用JOIN子句

SELECT 
    table1.id, 
    table1.option_name, 
    COUNT(table1.id) AS times
FROM table2
JOIN table1 ON (table1.id = table2.id)
GROUP BY
    table2.id
于 2013-09-22T15:11:21.623 回答