私は人のためにすべての仕事を得たいと思います。そして、彼が受け取ったすべての入札を数え、別のテーブルに保存します。同じSQLクエリ中に別のテーブルの行を数える方法
私は次の行を持つ1台持っている:今、私は最初のテーブルjobs WHERE userid=1
からすべてのジョブを取得し、カウントしてこれを組み合わせたい table bids: jobId,amount
: table jobs: jobId,userid,title
そして、次のと別のテーブルを第2のテーブルtable bids
のすべての行は、第1のテーブルから見出される各ジョブ(ライン)について同じjobId
を有する。
可能な出力は次のようになります。
job.jobId job.userid job.title bids.Total
1 10 "My job" 20
2 11 "Other job" 5
私はそれをこのようなものです間違った方法を行う方法を知っている:
$stmt0 = $mysqli->stmt_init();
$stmt0->prepare("SELECT jobId,title FROM jobs WHERE userid=?");
$stmt0->bind_param('i', $userid);
$stmt0->execute();
$stmt0->bind_result($jobId,$title);
// Fetch the result of the query
while($stmt0->fetch()) {
$ary = "SELECT amount FROM bids WHERE jobId='$jobId'";
if ($stmt_1 = mysqli_prepare($mysqli, $ary)) {
mysqli_stmt_execute($stmt_1);
mysqli_stmt_store_result($stmt_1);
$total_bids = mysqli_stmt_num_rows($stmt_1);
mysqli_stmt_close($stmt_1);
}
// show all jobs with total bids
...
}
$stmt0->close();
私は1つのクエリでこれを行うことができますどのように?
多分... 'SELECT jobs.jobId、job.user_id、ジョブを使用することができます.title、sum(bids.Total)ジョブからの '入札' INNER JOIN入札単価bids.jobId = jobs.jobId where job.user_id =? GROUP BY jobs.jobId' –