Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用where条件从7个以上的表中获取字段值_Sql - Fatal编程技术网

Sql 如何使用where条件从7个以上的表中获取字段值

Sql 如何使用where条件从7个以上的表中获取字段值,sql,Sql,我有一个平面文件,其中包含移动电话号码列表及其活动或非活动状态。因此,我的工作是编写SQL查询,以便我需要获取特定msisdn的7个表的列表,并且我必须获取msisdn的状态。因此,请给出如何编写的任何建议 我不能使用连接 也许你会在这个问题上使用UNION 第一步:做一个简单的练习 步骤2:从特定msisdn的所有表中获取记录 步骤3:针对特定msisdn在步骤1和步骤2之间联接 伪码 给我们一些可以合作的东西。。。模式、示例数据、期望结果……您使用的是哪种RDBMS?表模式是什么样的?你尝试

我有一个平面文件,其中包含移动电话号码列表及其活动或非活动状态。因此,我的工作是编写SQL查询,以便我需要获取特定msisdn的7个表的列表,并且我必须获取msisdn的状态。因此,请给出如何编写的任何建议

我不能使用连接

也许你会在这个问题上使用UNION

第一步:做一个简单的练习

步骤2:从特定msisdn的所有表中获取记录

步骤3:针对特定msisdn在步骤1和步骤2之间联接

伪码


给我们一些可以合作的东西。。。模式、示例数据、期望结果……您使用的是哪种RDBMS?表模式是什么样的?你尝试了什么?UNION?我必须编写脚本,该脚本必须检查处于活动状态和非活动状态的msisdn,并且必须将它们显示为处于活动状态和非活动状态。但是msisdn将仅出现在任何一个表中;如何使用上述方法检查特定msisdn的where条件query@user1345837将其包装在子查询中,并在外部进行过滤,checmu更新了答案。
SELECT *
FROM
(
    SELECT mobileNo, moileStatus FROM table1
    UNION 
    SELECT mobileNo, moileStatus FROM table2
    UNION 
    SELECT mobileNo, moileStatus FROM table3
    UNION 
    SELECT mobileNo, moileStatus FROM table4
    UNION 
    SELECT mobileNo, moileStatus FROM table5
    UNION
    SELECT mobileNo, moileStatus FROM table6
    UNION 
    SELECT mobileNo, moileStatus FROM table7
) allMobile
WHERE allMobile.mobileNo = '' 
      -- OR something like that
CREATE TABLE TempTable
(
 MSISDN INT,
 MobileNumber VARCHAR (50) NOT NULL,
 TheStatus varchar (10) NOT NULL
)

--Step 1: 
BULK INSERT TempTable FROM 'D:\InputMobileNumbers.txt' WITH (FIELDTERMINATOR = '","') 

-- Step 2:
INSERT INTO #TEMP 
SELECT * FROM 
(
SELECT MSISDN,MobileNumber FROM Table1 WHERE MSISDN = @MSISDN UNION All
SELECT MSISDN,MobileNumber FROM Table2 WHERE MSISDN = @MSISDN UNION All
.............................................................................
.............................................................................
SELECT MSISDN,MobileNumber FROM Table7 WHERE MSISDN = @MSISDN UNION All
)X

-- Step 3
SELECT tt.MSISDN,tt.MobileNumber,tt.TheStatus
FROM TempTable tt
JOIN #TEMP t ON tt.MSISDN = t.MSISDN
WHERE tt.MSISDN = @MSISDN


DROP TABLE #TEMP
DROP TABLE TempTable
select t1.column1,t1.column2,...,t2.column4,..
from table1 t1 
left outer join table2 t2 on t1.column1=t2.column3
left outer join table2 t3 on t2.column1=t3.column2
.....
where t1.active=1 and t2.column2>0 ....
order by t1.column1,.....