sql >> Database >  >> RDS >> Sqlserver

Hoe te controleren op wederzijds bestaan ​​van velden in dezelfde tabel in twee kolommen

Zou zoiets voor u kunnen werken:

With ManagerWorkers As
    (
    -- get managers with workers
    Select Managers.WorkerUsername As ManagerUsername, Workers.WorkerUsername
    From tblMyTable As Managers
        Join tblMyTable As Workers
            On Workers.ManagerUsername = Managers.WorkerUsername
    ) 
Select *
From ManagerWorkers
Union All
-- get workers that have a manager in the above list
Select WorkerUsername, ManagerUsername
From tblMyTable
Where Exists(   Select 1
                From ManagerWorkers
                Where ManagerWorkers.ManagerUsername = tblMyTable.ManagerUsername
                )   

BEWERKEN :Gezien de update van de vraag hoe zit het met de volgende vraag:

Select D1.u_username, U1.Permission, U1.Grade, D1.f_username, U2.Permission, U2.Grade
from tblDynamicUserList As D1
    Join tblDynamicUserList As D2
        On D2.u_username = D1.f_username
            And D2.f_username = D1.u_username
    Join tblUsers As U1
        On U1.u_username = D1.u_username
    Join tblUsers As U2
        On U2.u_username = D2.u_username


  1. MySQL:tel records van de ene tabel en werk vervolgens een andere bij

  2. Android SQLiteDB is niet klaar met het toevoegen van waarden

  3. Hoofdletterongevoelig zoeken in Oracle

  4. Hoe krijg ik de nieuwe hardloopbalans van de bestaande balans?