Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách kiểm tra sự tồn tại lẫn nhau của các Trường trong cùng một bảng trong Hai cột

Có thứ gì như thế này phù hợp với bạn không:

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
                )   

CHỈNH SỬA :Đưa ra bản cập nhật cho câu hỏi như thế nào về truy vấn sau:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các biến phân biệt chữ hoa chữ thường trong SQL Server

  2. Chuyển Danh sách các chuỗi vào một thủ tục được lưu trữ

  3. Sql Server - Tránh biên dịch trì hoãn

  4. Sao chép kết quả truy vấn SQL Server vào bảng Access 2010

  5. Cách tốt nhất để tăng tải trong ssis