2016-12-02 10 views
0

Ich habe eine Tabelle mit dem Namen emp(eid, ename, sal, mgr). Jetzt möchte ich das Managergehälter aktualisieren, dessen Gehalt weniger als 50000/- ist.wie man Update in der gleichen Tabelle in mysql auswählen?

UPDATE emp AS t1 INNER JOIN 
(SELECT mgr FROM emp WHERE mgr = t1.empno) AS t2 
SET sal = sal + 5000 
WHERE t1.sal <50000; 

was soll ich tun?

+2

fügen Sie Ihre Anfrage –

+0

'Update emp Satz sal = {was immer Sie wollen} wo sal <50000' –

+0

' Update emp Satz sal = newamount wo sal < 50000' –

Antwort

0

Sie Unterabfrage verwenden können, Daten zu aktualisieren, die auf einem Tisch dh ab:

UPDATE sometable set field = null 
WHERE sometable.id in (SELECT * FROM (SELECT id from sometable) as a); 
1

Ich mag den Manager Gehalt, dessen Gehalt weniger als 50000/

aktualisieren, warum Sie ein SELECT BTW benötigen. Führen Sie einfach UPDATE Betrieb wie

update emp 
set sal = 70000 
where sal < 50000; 
0

In MySQL, ich viel lieber JOIN für diese Art der Aktualisierung mit der zur Verwendung von doppelt verschachtelt IN Ausdruck. Die JOIN ermöglicht es die Optimierer Nutzung der verfügbaren Indizes zu machen:

UPDATE emp mgr INNER JOIN 
     emp e 
     ON e.empno = mgr.mgr 
    SET mgr.sal = mgr.sal + 5000 
    WHERE mgr.sal < 50000; 
Verwandte Themen