【发布时间】:2017-07-15 11:05:36
【问题描述】:
如何运行一个 mysql 查询来输出“未分组”和“按用户名分组”的数据?
我有一个查询来获取与用户帖子相关的所有数据。在 while 循环中,我正在检索用户名并将其输入到选择/选项下拉列表中。在此之下,它实际上是在输出单个帖子 - 用户名和帖子。
这一切都很好,但如果用户有多个帖子,他/她的名字会在下拉列表中重复。如果我在查询中使用 GROUP BY 子句,那么它不会显示所有帖子 - 每个用户只显示一个。
我无法运行单独的查询(或者至少我找不到解决方案),因为我有分页查询设置,所以在下拉列表中运行单独的查询只会显示所有用户,而我只是想要显示当前显示在页面上的那些。
有没有办法在同一个查询中同时输出“未分组”和“分组依据”的数据?
这是我想要的输出示例。 注意:用户 Michael Smith 有 2 个帖子,但他的名字只出现在下拉列表中一次。
<h3>Posts Filter</h3>
<select>
<option>Michael Smith</option>
<option>James Hendrickson</option>
<option>Lucy Michaels</option>
</select>
<br>
<br>
<hr>
<div style="width:45%;height:200px;float:left;border:1px solid #ddd;padding:10px;margin:2.5%;box-sizing:border-box;">
<h2>Michael Smith</h2>
<p>Bacon ipsum dolor amet short ribs kevin ribeye meatball filet mignon swine pork loin spare ribs, pork belly cow tenderloin venison...</p>
</div>
<div style="width:45%;height:200px;float:left;border:1px solid #ddd;padding:10px;margin:2.5%;box-sizing:border-box;">
<h2>James Hendrickson</h2>
<p>Bacon ipsum dolor amet short ribs kevin ribeye meatball filet mignon swine pork loin spare ribs, pork belly cow tenderloin venison...</p>
</div>
<div style="width:45%;height:200px;float:left;border:1px solid #ddd;padding:10px;margin:2.5%;box-sizing:border-box;">
<h2>Michael Smith</h2>
<p>Bacon ipsum dolor amet short ribs kevin ribeye meatball filet mignon swine pork loin spare ribs, pork belly cow tenderloin venison...</p>
</div>
<div style="width:45%;height:200px;float:left;border:1px solid #ddd;padding:10px;margin:2.5%;box-sizing:border-box;">
<h2>Lucy Michaels</h2>
<p>Bacon ipsum dolor amet short ribs kevin ribeye meatball filet mignon swine pork loin spare ribs, pork belly cow tenderloin venison...</p>
</div>
<hr>
<br>
<span style="margin: 0 10px 0 0;width:30px;height;30px;line-height:30px;text-align:center;display:block;float:left;color:#ddd;background:#000;">1</span>
<span style="margin: 0 10px 0 0;width:30px;height;30px;line-height:30px;text-align:center;display:block;float:left;color:#000;background:#ddd;">2</span>
<span style="margin: 0 10px 0 0;width:30px;height;30px;line-height:30px;text-align:center;display:block;float:left;color:#000;background:#ddd;">3</span>
<span style="margin: 0 10px 0 0;width:30px;height;30px;line-height:30px;text-align:center;display:block;float:left;color:#000;background:#ddd;">4</span>
<span style="margin: 0 10px 0 0;width:30px;height;30px;line-height:30px;text-align:center;display:block;float:left;color:#000;background:#ddd;">5</span>
<br>
<br>
提前谢谢你。
谢尔盖
【问题讨论】:
-
这里没有数据库代码。
-
不,你不能在同一个查询中得到分组和未分组的结果——它只是不能那样工作。不过,您应该能够根据下拉菜单中的数据运行另一个查询。
-
可以将其取消分组并group it in PHP
-
这似乎是您上一个问题stackoverflow.com/q/42381424/1415724的转贴
-
Fred -ii- 相似但不同,因为我现在有分页方面,基本上可以减少打印结果。而且我也在尝试更习惯于使用 mysql 查询进行此类过滤,因为我对它们不太熟悉。