我在下面有这个查询。表的所有关系都是一对一的关系,除了 ASSOCPRODUCTS 表,每个订单有两个产品。一切似乎都工作正常,除了我的查询只返回一行,因此,实际上只有两个产品 ID 时才会返回一个产品 ID。我理解为什么它只拉一个,因为每个 orderID 只有一个订单,但每个合同有两个关联产品,我需要获取每个产品 ID。在 Assocproducts 表中,每个产品都有自己的行,因为它与contracts 表是一对多的。
是否可以使用内部联接获取该信息,或者我是否需要运行另一个查询?
$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 触发器。
谢谢!