フィードバックと時間を割いていただき、本当にありがとうございます。
データベース with1 テーブルにクエリを実行する PHP ページに取り組んでおり、スタックしているようです。SQL は私の得意分野ではないので、助けを求めています。私はMYSQLが添付されたPHPで作業しています。
データベース
次を含むテーブル「製品」があります。
1ID, 2Product Description, 3Price, 4Category, 5Size, 6Price-Category
クエリを実行して、サイズ (完全一致) と価格カテゴリ (同等またはそれ以上) で一致する製品を特定したいと考えています。そのため、次のプロセスを考えました。
A - run queries to identify different products by Category (one for Category A, one for Category B)
B - compare query A and B by Size and Price-Category
C - Display Results by ID for Category A
Query A Product の ID ごとに結果を出力したいと思います。
1ID|2Product Description|3Price|4Category|5Size|6Price-Category|7Query B Details
1 Product 100 Cat 100 1 ID, Product. etc.
ID, Product. etc.
ID, Product. etc.
2 Product 200 Cat 100 2 ID, Product. etc.
ID, Product. etc.
ID, Product. etc.
これをどのように構築できるかについてのアイデアはありますか?
前もって感謝します!
これまでに試したコード(現在、2つのテーブルから取得しようとしていますが、元々は1つにありました!!!!)
$query = "SELECT betten.m3, betten.Shortcode, betten.CodePDT, betten.PVCons, betten.CAT, betten.size1, betten.size2, betten.m3, betten.SIZE, betten.PRICERANGE, som.CodePDT2, som.Shortcode2, som.PRICECLASS, som.PVCons2, som.CAT2, som.size1a, som.size2a, som.m3a, som.SIZETWO FROM betten LEFT JOIN som ON betten.m3 = som.m3a ORDER BY CodePDT ";
$result = mysql_query($query) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
echo "<tr><td>";
echo $row['CodePDT']. "</td><td>".$row['Shortcode']. "</td><td>". $row['PVCons']."</td><td>". $row['CAT']. "</td><td>". $row['SIZE']. "</td><td>". $row['m3']."</td><td>". $row['PRICERANGE']. "</td><td>". $row['CodePDT2']. "</td><td>". $row['Shortcode2']. "</td><td>". $row['PVCons2']. "</td><td>". $row['CAT2']. "</td><td>". $row['SIZETWO']. "</td><td>". $row['m3a']. "</td><td>". $row['PRICECLASS']. "</td><td>";
echo "</td></tr>";
}
アップデート:
GROUP_CONT を除いて、これは機能します。なしで、結果は得られますが、行ごとです。GROUP_CONT を使用すると、「'GROUP_CONCAT(som.S....) の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」というエラーが表示されます。
SELECT `betten`.*, `som`.*
FROM betten
LEFT JOIN som ON betten.m3 = som.m3a
WHERE SIZE LIKE SIZETWO
GROUP_CONCAT(som.Shortcode2) AS Dude
GROUP BY betten.CodePDT
ORDER BY CodePDT ASC