簡體   English   中英

SQLSTATE [42S02]-來自子查詢

[英]SQLSTATE[42S02] - from subquery

在使用通過別名調用的表處理子查詢時,MYSQL觸發SQLSTATE [42S02]錯誤

"UPDATE call_log AS c1 INNER JOIN call_log AS c2 ON c1.id = c2.id SET c1.end ='".$reponse."' WHERE c1.id = (SELECT MAX(c2.id) FROM (SELECT * from c2 WHERE c2.num =".$numero." ) derivee )";

理想的結果是更新call_log表中包含$ num變量的最后匹配行。 由於MYSQL禁止根據同一張表進行子查詢,因此我按照此處的建議使用別名來引用這些表

mySQL錯誤:#1248-每個派生表必須具有自己的別名

還是在MySQL中出現錯誤“每個派生表必須具有自己的別名”?

我得到的錯誤是:

PHP致命錯誤:消息為'SQLSTATE [42S02]的未捕獲異常'PDOException':未找到基表或視圖:1146表'ERP.c2'不存在”

好的,我發現了問題。 我稍微更改了命令以簡化請求。

$sql ="UPDATE call_log as c1 SET c1.end = '".$reponse."' WHERE c1.id = (SELECT MAX(derive.id) FROM (SELECT * FROM call_log c2) derive WHERE derive.num =".$numero.")";

主要區別在於,我為表本身創建了一個別名,作為c2 我也使用(SELECT * FROM call_log c2) derive的別名(SELECT * FROM call_log c2) derive ,在該位置, derive將作為別名來過濾子查詢結果!

如果對別人有幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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