簡體   English   中英

不是唯一的表/別名:'request

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM