2

チームテーブルからチームを削除するときは、teamIdが他のテーブルで使用可能かどうかを確認する必要があります。このために私は次のクエリを使用しています:-

        select  count(TeamId) from 
        ( select TeamId from Project union all 
          select  TeamId from TeamMember union all 
          select  TeamId from Department union all 
          select TeamId from Role   union all 
        ) as Id where TeamId = 1

このクエリは正常に機能しており、カウント数を返します。

しかし今、私はそのテーブルとその列の名前が必要です。そこで私はそのteamIdを見つけました。

可能であれば、正しい解決策を教えてください。

前もって感謝します..

4

2 に答える 2

1
 select 'Project' tableName from Project
 where TeamId = 1
 union all 
 select 'TeamMember' from TeamMember
 where TeamId = 1
 union all 
 select 'Department' from Department
 where TeamId = 1
 union all 
 select 'Role' from Role
 where TeamId = 1

すべての場合に「TeamId」をリストしたので、それが見つかった場所に「列」が必要な理由がわかりません。代わりに、異なるテーブルで異なる名前が付けられている場合は、次のように使用できます。

 select 'Project' tableName, 'TeamId' columnName from Project
 where TeamId = 1
 union all 
 select 'TeamMember', 'Member_TeamId' from TeamMember
 where Member_TeamId = 1

最後に、代わりに「行」(レコード)が必要な場合は、IDを列に追加できます。

 select 'Project' tableName, ProjectID idInTable from Project
 where TeamId = 1
 union all 
 select 'TeamMember', TeamMemberId from TeamMember
 where TeamId = 1
于 2012-10-01T06:24:44.173 に答える
1
select * from 
        ( select 'Project'    as table_name, TeamId from Project    union all 
          select 'TeamMember' as table_name, TeamId from TeamMember union all 
          select 'Department' as table_name, TeamId from Department union all 
          select 'Role'       as table_name, TeamId from Role    
        ) Id 
where TeamId = 1
于 2012-10-01T06:26:10.387 に答える