[英]Not unique table/alias: 'request
我的应用程序中有以下查询,
$que="SELECT DISTINCT prescription.commodity_name, prescription.dosage, prescription.duration, prescription.prescription_id, prescription.remarks, prescription.paid, employee.f_name, prescription.quantity_requested, employee.s_name, employee.other_name, prescription.doctor_id, request.strength, stock.unit_per_pack, stock.selling_price, stock.buying_price
FROM prescription
INNER JOIN request ON prescription.medname = request.commodity_name
INNER JOIN stock ON stock.stock_id = request.stock_id
INNER JOIN request ON request.request_id = transaction.transaction_id
INNER JOIN employee ON employee.employee_id = prescription.doctor_id
INNER JOIN visit ON prescription.visit_id = visit.visit_id
WHERE prescription.visit_id = '".$id."'";
运行脚本文件时,出现以下数据错误:不是唯一的表/别名:'request
我该如何解决这个问题?或者我做错了什么?
您在request
执行两个联接,这意味着,例如,当您SELECT request.strength
不知道要使用哪个表。
考虑添加别名:
SELECT DISTINCT prescription.commodity_name, prescription.dosage, prescription.duration, prescription.prescription_id, prescription.remarks, prescription.paid, employee.f_name, prescription.quantity_requested, employee.s_name, employee.other_name, prescription.doctor_id,
r1.strength, -- Switched to use r1 alias
stock.unit_per_pack, stock.selling_price, stock.buying_price
FROM prescription
INNER JOIN request r1 ON prescription.medname = r1.commodity_name -- Using alias r1
INNER JOIN stock ON stock.stock_id = r1.stock_id
INNER JOIN request r2 ON r2.request_id = transaction.transaction_id -- Using alias r2
INNER JOIN employee ON employee.employee_id = prescription.doctor_id
INNER JOIN visit ON prescription.visit_id = visit.visit_id
WHERE prescription.visit_id = '".$id."'"
请注意,您可能需要调整上面使用的别名。
您在两个联接中使用了相同的别名“ request”。 您需要为其指定一个唯一的别名,例如:
SELECT DISTINCT * FROM prescription a
INNER JOIN request b ON a.medname = b.commodity_name
INNER JOIN stock c ON c.stock_id = b.stock_id
INNER JOIN request d ...
另外,您的查询中有错误吗? 您似乎正在尝试联接到称为transaction
的表,但未在联接中定义它:
INNER JOIN request ON request.request_id = transaction.transaction_id
该请求表实际上应该是事务吗?:
INNER JOIN transaction ON request.request_id = transaction.transaction_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.