私は、PHPで次のことを行う非常にシンプルなSQLだと思ったことを試しましたが、正しく表示されず、ソリューションを "google"する良い方法を見つけることができません。私はこのテーブルの複数の列を持つ200,000以上のレコードを保持するvaloreguide2テーブルを持っていますが、いくつかのカラムでは異なる値を持ち、他のカラムでは同じ値を持つ重複ローです。私はすべての値を取って新しいテーブルに入れたいが、これを行うには、isbnというラベルの列に同じ値を持つ行を結合し、新しい行の1行にすべての値を保持したい表。値の重複があるテーブルのデータを1つの行に結合するにはどうすればよいですか?
です。私はこのテーブルからすべての情報を取り出し、それを異なるカラムタイトルの別のテーブルに挿入したいが、isbnに基づいてそれらを結合したい。
`$results = $conn->query("select * from valoreguide2 group by isbn");
while ($row12 = $results->fetch_assoc()) {
$isbn = $row12['isbn'];
$APrice =$row12['Acomm'];
$AQty=$row12['Aqty'];
$IPrice =$row12['Icomm'];
$IQty=$row12['Iqty'];
$SPrice =$row12['Scomm'];
$SQty=$row12['Sqty'];
$TPrice =$row12['Tcomm'];
$TQty=$row12['Tqty'];
$NPrice =$row12['Ncomm'];
$NQty=$row12['Nqty'];
$BBPrice =$row12['BBcomm'];
$BBQty=$row12['BBqty'];
$guide_prices = array('amtext'=>(float)($APrice), 'ingram'=>(float)($IPrice), 'sterling'=>(float)($SPrice), 'tichenor'=>(float)($TPrice), 'nebraska'=>(float)($NPrice), 'BB'=>(float)($BBPrice),);
$bestGuidePrice = max($guide_prices);
$bestGuidePrice = number_format($bestGuidePrice,2,'.','');
foreach ($guide_prices as $key => $val) {
if ($val == max($guide_prices))
{
$bestGuide = $key;
}
}
$valoreprice=(($bestGuidePrice/1.15)-5);
$conn->query("insert into valorebest2 (isbn, aprice, iprice, sprice, tprice, nprice, bookbyte, bestprice, valore, bestguide) values ('$isbn','$APrice','$IPrice','$SPrice','$TPrice','$NPrice','$BBPrice','$bestGuidePrice','$valoreprice','$bestGuide') ");
}`
が、私は十分に私に知らせてください提供していない場合は結果が..私は上の入力したくなかった...それは1つだけ選んでいる行を結合されていません。私が書いたコードは、以下です誰かがあなたにコンマを忘れてしまったと言っているときに。
編集:MySQLの
編集を使用して
私はそれが私の提案は、挿入部を処理しません:-) ANSIのSQLである一方、MySQLは、私の提案を受け入れると思うのMySQL –
を使用しています。挿入物を選択から入力させる方法がわからない場合は教えてください –
INSERT INTO valorebest2(isbd、A、B、C、D)SELECT isbn、min(A)、...... '等 –