不可以哦,這不是MYSQL的問題,數據庫都有這個規定:不允許UPDATE的子查詢里面有被UPDATE的那個表。
成都創新互聯公司2013年成立,先為新田等服務建站,新田等地企業,進行企業商務咨詢服務。為新田企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
我一般采取兩種方法,一是利用SQL文本:
SELECT CONCAT("UPDATE RES_OBJECT SET MULTISELECT_ID=",
B.MULTISELECT_ID,"WHERE RES_ID=",A.RES_ID,";")
INTO OUTFILE ABC.SQL
FROM RES_OBJECT A,RES_OBJECT B
WHERE B.RES_ID=A.PARENT_NODE_RES_ID)
AND (RES_OBJECT.MULTISELECT_ID IS NULL OR RES_OBJECT.MULTISELECT_ID=0);
SOURCE ABC.SQL;
另外一種方法是利用臨時表:
SELECT B.MULTISELECT_ID,A.RES_ID
FROM RES_OBJECT A,RES_OBJECT B
WHERE B.RES_ID=A.PARENT_NODE_RES_ID)
AND (RES_OBJECT.MULTISELECT_ID IS NULL OR RES_OBJECT.MULTISELECT_ID=0)
INTO TEMP TABLE TMP;
UPDATE RES_OBJECT SET MULTISELECT_ID=
(SELECT MULTISELECT_ID FROM TMP WHERE TMP.RES_ID=RES_OBJECT.RES_ID)
WHERE EXISTS
(SELECT MULTISELECT_ID FROM TMP WHERE TMP.RES_ID=RES_OBJECT.RES_ID);
描述的太模糊,我以下列假設為前提給你解答
員工表(t1):前提有 員工id,身份證號,是否在職標識,入職、離職時間
打卡記錄表(t2):打卡人身份證號,打卡時間
select?t1.員工ID,t1.員工姓名,t1.員工身份證號碼,t2.打卡時間
from?t1?join?t2?on?t1.員工身份證號碼?=?t2.員工身份證號碼
where?t1.在職標識?=?'在職'?
AND??t2.打卡時間?=?t1.入職時間
進行嵌套查詢的時候子查詢出來的的結果是作為一個派生表來進行上一級的查詢的,所以子查詢的結果必須要有一個別名
例如:把mysql語句改成:select
count(*)
from
(select
*
from
……)
as
total;
問題就解決了,雖然只加了一個沒有任何作用的別名total,但這個別名是必須的
網站名稱:mysql怎么嵌套查詢,mysql嵌套查詢和連接查詢效率
地址分享:http://vcdvsql.cn/article0/hsoeoo.html
成都網站建設公司_創新互聯,為您提供軟件開發、靜態網站、建站公司、App設計、網站設計、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯