-4

我需要查询多个表中的值并确保结果正确显示。

每个表中都有唯一的 product_id,但是如何确保数据正确排列?例如,product_price 是从不同的表中查询的,需要与正确的产品对齐。

我是 SQL 新手,如果这很简单,我深表歉意。


$query = "SELECT * FROM jos_vm_product ORDER BY product_publish DESC";
$result = mysql_query($query);

echo "<table>";
while($row = mysql_fetch_array($result)){

echo "<tr><td>" . $row['product_id'] . "</td><td>" . $row['product_sku'] . "</td><td>" . $row['product_name'] . "</td><td>" . $row['product_in_stock'] . "</td><td>" . $row['product_sales'] . "</td><td>" .  $row['product_price'] . "</td><td>" . $row['product_available_date'] . "</td><td>" . $row['product_publish'] . "</td></tr>";

}

echo "</table>";
4

2 回答 2

0

进行连接(INNER JOIN 或 LEFT JOIN,取决于如果表缺少匹配行会发生什么):

SELECT * FROM jos_vm_product 
  INNER JOIN <second product table> on jos_vm_product.product_id = <second product table>.product_id
  INNER JOIN <third product table> on jos_vm_product.product_id = <third product table>.product_id
ORDER BY jos_vm_product.product_publish DESC
于 2013-09-09T12:27:33.393 回答
0
SELECT * FROM jos_vm_product ORDER BY product_publish DESC

对我来说,上面的查询看起来你只是从 1 个表或视图中获取。在这种情况下,您不是从多个表中选择...

但对于一个例子,你会使用JOIN@Matt.C 建议的那样。

SELECT * -- select everything from P and PS you can specify (P.ID, PS.productPrice)
FROM jos_vm_product P
INNER JOIN jos_vm_productPrices PS -- join to another table.
ON P.ProductID = PS.ProductID -- join on what?
ORDER BY P.product_publish DESC
于 2013-09-09T12:31:04.397 回答