在过去的几个小时里,我一直在努力解决从两个不同的表中提取类似数据的问题。我一直在玩Join语句,但一直无法完成我想要做的事情。
首先,我试图提取一个客户列表,并在html表中显示它们和该表中的信息(这是完整的)。其次,我想把他们的索引(称为MID)用于引用另一个表中包含更多MID数据的数据。每个客户端都有多个“项目”位于另一个表中,并且这些项目中的每一个都有一个名为“package”的值,该值可以是1,2或3.我希望能够做的就是拉来自一个表的所有客户数据,并且还提取他们拥有的每个包的总数。即在我的表中,我有一个空白的地方,分别为pack1,pack2,pack3,我希望它将包含具有相同MID的包中包含该数字的总行数。
Example [ name ] [totalprojects][ totalpackage1][totalpackage2][totalpackage3]
Bob 25 4 12 9
这是我的代码
$query_load_accounts = "SELECT * FROM useraccounts ORDER BY MID";
$result_load_accounts = mysqli_query($dbc, $query_load_accounts);
echo '<center><table border="1">';
echo '<cellpadding="10">';
echo '<th>Company Name</th>';
echo '<th>Member Since</th>';
echo '<th>Package 1</th>';
echo '<th>Package 2</th>';
echo '<th>Package 3</th>';
while ($row = mysqli_fetch_assoc($result_load_accounts))
{
echo "<tr>
<td><center>{$row['company']}</td></center>
<td><center>membersince</center></td>
<td><center>notused</center></td>
<td><center>package1</center></td>
<td><center>package2</center></td>
<td><center>package3</center></td>";
}
echo "</center></table>";
mysqli_close($dbc);
mysqli_free_result($result_load_accounts);
其他有用的信息 - 另一个表的名称是“项目”,所需的字段是MID(客户特定)和包(只是一个包号,即包1 14.99,包2是24.99转)我希望能够我想使用Join语句来计算每个用户的每个包的数量。我只是遇到了很多麻烦
*更新我测试了以下语句,它正确地提取数据,现在我只需要知道如何在PHP中对数据进行排序。 I.E计算每个用户的行数
$ query_load_accounts =“SELECT useraccounts。,projects。 FROM useraccounts LEFT JOIN致敬on useraccounts.mid = projects.mid 订购UID“;
感谢此帖子中的零活动,我自己解决了这个问题。甩掉包袱。
'SELECT mid,
SUM(IF(package = "1", 1,0)) AS `1`,
SUM(IF(package = "2", 1,0)) AS `2`,
SUM(IF(package = "3", 1,0)) AS `3`,
COUNT(package) AS `total`
FROM projects
GROUP BY mid
ORDER BY mid DESC'
答案 0 :(得分:0)
&#39; SELECT mid,
SUM(IF(包=&#34; 1&#34;,1,0))AS 1
,
SUM(IF(包=&#34; 2&#34;,1,0))AS 2
,
SUM(IF(包=&#34; 3&#34;,1,0))AS 3
,
COUNT(包)AS total
来自项目
GROUP BY中期
在DESC中期订购&#39;