以下にこのクエリがあります。注文ごとに2つの製品があるASSOCPRODUCTSテーブルを除いて、テーブルのすべての関係は1対1の関係です。クエリが1行のみを返すことを除いて、すべてが正常に機能しているように見えます。したがって、実際には2つある場合に1つの製品IDのみが返されます。orderIDごとに1つの注文しかないという点で、なぜ1つしかプルされないのか理解していますが、契約ごとに2つの関連商品があり、各商品IDを取得する必要があります。Assocproductsテーブルでは、contractsテーブルとの1対多であるため、各製品は独自の行を取得します。
内部結合を使用してその情報を取得することは可能ですか、それとも別のクエリを実行する必要がありますか?
$orderid = $_POST['orderid'];
$res = mysql_query ("
SELECT company.name as cname,
orders.datemade as datemade
orders.p1quantity as p1q,
orders.p2quantity as p2q,
assocproducts.productid as pid,
assocproducts.price as pprice,
inventory.name as pname,
inventory.quantity as pquantity
FROM orders
INNER JOIN contracts ON (contracts.id = orders.contractid)
INNER JOIN company ON (contracts.companyid = company.id)
INNER JOIN assocproducts ON (contracts.id = assocproducts.contractid)
INNER JOIN inventory ON (assocproducts.productid = inventory.id)
WHERE orders.id = " . $orderid);
$order = mysql_fetch_assoc($res);
さらに情報が必要な場合はお知らせください。
この特定の注文の注文情報のみを表示する必要があるため、$orderはループしていません。これはクリック時のAJAXトリガーです。
ありがとう!