大家好,所以这是我第一次处理内部联接,所以任何帮助都非常感激。
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);
加入证明有点困难,但任何帮助都非常赞赏。
答案 0 :(得分:0)
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 = ...