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

时间:2013-07-19 08:30:04

标签: php mysql inner-join

大家好,所以这是我第一次处理内部联接,所以任何帮助都非常感激。

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

不唯一的表/别名:'products'

以下是代码本身:

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);

加入证明有点困难,但任何帮助都非常赞赏。

1 个答案:

答案 0 :(得分:0)

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

products表的两个连接都被别名为products,对products1products2使用不同的别名;并确保在所选列的列表中使用正确的别名;虽然您的选择列表并未真正说明您要引用哪个

修改

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 = ...