1

過去数時間、2 つの異なるテーブルから同様のデータを取得する方法について頭を抱えていました。私は Join ステートメントで遊んでいますが、私がやろうとしていることを達成することができません..

最初に、クライアントのリストを取得して、クライアントとその情報をそのテーブルから html テーブルに表示しようとしています (これで完了です)。次に、インデックス (MID と呼ばれる) を取得し、MID に関するより多くのデータを含む別のテーブルのデータを参照するために使用します。各クライアントには複数の「プロジェクト」が別のテーブルにあり、これらのプロジェクトのそれぞれには「パッケージ」と呼ばれる値があり、値は 1、2、または 3 のいずれかです。私ができるようにしたいのは、プルすることです1 つのテーブルからすべての顧客データを取得し、所有している各パッケージの総数も取得します。つまり、私のテーブルには 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 ext) です。各ユーザーの各パッケージの量を合計する結合ステートメント..私はそれでとても苦労しています

*UPDATE次のステートメントをテストしたところ、データが正しくプルされました。PHPでそのデータをソートする方法を知る必要があります。IEは各ユーザーの行を数えます

$query_load_accounts = "SELECT useraccounts. , projects. FROM useraccounts LEFT JOIN tributes ON useraccounts.mid = projects.mid ORDER BY 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'
4

1 に答える 1