1

大家好,这是我第一次处理内部连接,非常感谢任何帮助。

只是想知道为什么我从我创建的代码中收到以下错误:

不是唯一的表/别名:“产品”

这是代码本身:

mysql_select_db($database_reps, $reps);
$query_orders = sprintf("SELECT
orders.ID AS mainID,
customers.`Name` AS customerName,
products.ProductName AS product,
orders.Quantity AS Quantity,
orders.comment As comment,
orders.SalesPrice AS SalesPrice,
orders.Price AS Price,
orders.paid AS paid,
orders.product2 AS product2,
orders.AgeOfPayment AS AgeOfPayment,
orders.orderDate AS orderDate,
products.Price AS productPrice,
staff.StaffName AS staffMember,
orders.bonus AS bonus
FROM
orders
INNER JOIN staff AS staff ON orders.staffMember = staff.ID
INNER JOIN products AS products ON orders.product = products.ID
INNER JOIN products AS products ON orders.product2 = products.ID
INNER JOIN customers AS customers ON orders.customerName = customers.ID
WHERE
orders.ID = %s", GetSQLValueString($colname_orders, "int"));

$orders = mysql_query($query_orders, $reps) or die(mysql_error());
$row_orders = mysql_fetch_assoc($orders);
$totalRows_orders = mysql_num_rows($orders);

连接被证明有点困难,但非常感谢任何帮助。

4

1 回答 1

1
INNER JOIN products AS products ON orders.product = products.ID
INNER JOIN products AS products ON orders.product2 = products.ID

表的两个连接products都被别名为products,为每个喜欢使用不同的products1别名products2; 并确保在所选列的列表中使用正确的别名;尽管您的选择列表并没有真正说明您要参考的内容

编辑

SELECT orders.ID AS mainID,
       customers.`Name` AS customerName,
       products1.ProductName AS productName1,
       products2.ProductName AS productName2,
       orders.Quantity AS Quantity,
       orders.comment As comment,
       orders.SalesPrice AS SalesPrice,
       orders.Price AS Price,
       orders.paid AS paid,
       orders.product2 AS product2,
       orders.AgeOfPayment AS AgeOfPayment,
       orders.orderDate AS orderDate,
       products1.Price AS productPrice1,
       products2.Price AS productPrice2,
       staff.StaffName AS staffMember,
       orders.bonus AS bonus
  FROM orders
 INNER JOIN staff
    ON orders.staffMember = staff.ID
 INNER JOIN products AS products1 
    ON orders.product = products1.ID
 INNER JOIN products AS products2 
    ON orders.product2 = products2.ID
 INNER JOIN customers 
    ON orders.customerName = customers.ID
 WHERE orders.ID = ...
于 2013-07-19T08:31:32.903 回答