2016-09-07 3 views
-2

는 다음 스키마 감안할 때 배열의 테이블을 기준으로 기록을 무시 :SQL : 선택/

CREATE TABLE Test 
    (`id` int, `TestName` varchar(7), `description` varchar(55)); 

INSERT INTO Test 
    (`id`, `TestName`, `description`) 
VALUES 
    (1, 'Test1', 'Td1'),(2, 'Test2', 'Td2'),(3, 'Test3', 'Td2'); 

CREATE TABLE Forcedata 
    (`id` int, `ForceData` varchar(7), `description` varchar(55)); 

INSERT INTO Forcedata 
    (`id`, `ForceData`, `description`) 
VALUES 
    (1, 'F1', 'Fd1'), (2, 'F2', 'Fd2'), (3, 'F3', 'Fd3'); 

CREATE TABLE Temp 
    (`id` int, `TempName` varchar(7), `description` varchar(55)); 

INSERT INTO Temp 
    (`id`, `TempName`, `description`) 
VALUES 
    (1, 'Tm1', 'Tmd1'),(2, 'Tm2', 'Tmd2'); 

    CREATE TABLE Sensor 
    (`id` int, `SensorName` varchar(7), `description` varchar(55)); 

INSERT INTO Sensor 
    (`id`, `SensorName`, `description`) 
VALUES 
    (1, 'S1', 'Sd1'),(2, 'S2', 'Sd2'); 

내가 하나 개의 배열이 데이터에 언급 된 테이블에서 값을 가져옵니다 SELECT 문을 작성하려는를 다른 배열의 테이블에 있으면 안됩니다. 이 같은 것을하고 싶습니다.

DECLARE @ListToCheck VARCHAR(MAX) 
SET @ListToCheck = 'Test' + ', ' + 'Forcedata'; 

DECLARE @TablesToavoid VARCHAR(MAX) 
SET @TableToAvoid = 'Temp' + ', ' + 'Sensor'; 


SELECT id FROM 
tables in ('[email protected]+')' 
And WHERE id should NOT be IN ('[email protected]+')' 

id : 3을 가진 스키마 만 레코드를 선택해야합니다. 사전 :

+0

알 수 있습니까 ?? – zzai

답변

0

이 시도에 감사,

MySQL은 :

SELECT t.id 
    FROM (
     SELECT ID 
     FROM Test 

     UNION 

     SELECT ID 
     FROM Forcedata 
     ) T 
    LEFT JOIN (
     SELECT ID 
     FROM TEMP 

     UNION 

     SELECT ID 
     FROM Sensor 
     ) T1 ON T.id = T1.id 
    WHERE t1.id IS NULL 

SQL 서버 : 내가 왜이 부정 투표가

SELECT ID 
FROM Test 

UNION 

SELECT ID 
FROM Forcedata 

EXCEPT 

(
    SELECT ID 
    FROM TEMP 

    UNION 

    SELECT ID 
    FROM Sensor 
    ) 
+0

나는 이것을 어떻게 할 수 있는지 알고있다. 문제는 배열을 사용하여 어떻게 할 수 있는가입니다. 하지만 어쨌든 고마워. – zzai