SQL检查是否通过多个不同的表存在值

时间:2014-04-14 15:35:07

标签: sql if-statement exists

假设我有一个独特的23位数文件标识符。我想检查所有给定表中所有行的任何列中是否存在此标识符。这些表和它们的列不同。

是否有一些选择可以帮助我实现这一目标?

示例场景可以是这样的:

  

FileID = 534bde4c322755995941083

     

TableA(columnA,columnB,columnC)

     

TableB(columnD)

     

TableC(columnE,columnF)

我想只返回那些只包含这个唯一标识符的记录,仅此而已。表的数量与列类似。

是否有一些SQL语句可以帮助我解决这个问题?

我可以遍历所有记录,列和表,但这对于此类任务来说似乎是一个巨大的过度杀伤力。

2 个答案:

答案 0 :(得分:1)

你可以像这样使用UNPIVOT ......

SELECT Vals
FROM TableA A
 UNPIVOT( Vals FOR N IN (columnA, columnB, columnC)
         ) UP
WHERE Vals  = '534bde4c322755995941083'

UNION ALL 

SELECT ColumnD 
FROM TableB 
WHERE ColumnD =  '534bde4c322755995941083'

UNION ALL 

SELECT Vals
FROM TableC  C
 UNPIVOT( Vals FOR N IN (columnE, columnF)
         ) UP
WHERE Vals  =  '534bde4c322755995941083'

答案 1 :(得分:0)

使用phpmyadmin,点击菜单'搜索' 输入您的23位数字,选择所有表格,您将获得每张桌子上的出现次数