2011-04-29 6 views
0
의 항목에 대한 tblB에없는 TBLA의 행을 얻을

나는 있습니다 .. JobBatchStatusTBL에없는 batchTBL 에서 batchuuid를 얻기 위해 쿼리를 얻으려고MySQL은, tblB

...

어떤 생각을

select * 
from BatchTBL as ba 
left join JobBatchStatusTBL as j 
on ba.BatchUUID=j.BatchUUID 
join JobTBL as j2 
on j.JobUUID=j2.JobUUID 
where j.batchuuid IS NULL 
and j.JobUUID = 'ecd0fab8-8bf1-83cc-b1d7-495034a55618'; 

하지만 난 뭔가를 속이고 해요 : 내가 좋아하는 뭔가를 사용하려고 시도하는 다른 쿼리의 몇 가지를 시도했습니다? 난 당신이 정확하게 뭘 하려는지 이해한다면

감사

mysql> select BatchName,BatchUUID from BatchTBL; 
+-----------+--------------------------------------+ 
| BatchName | BatchUUID       | 
+-----------+--------------------------------------+ 
| aa  | d288ff51-d045-d218-52fd-93e3523db85e | 
| aa1  | a288ff51-d045-d218-52fd-93e3523db85e | 
| aa3  | d188ff51-d045-d218-52fd-93e3523db85e | 
| aaa3  | da88ff51-d045-d218-52fd-93e3523db85e | 
| baa3  | db88ff51-d045-d218-52fd-93e3523db85e | 
| z1  | 7eedfea4-c498-ed6e-f0dd-1397fe7dbd67 | 
| d1  | 34781dba-d99c-82e3-f499-b55ded863f81 | 
| nb  | 1dd56d9c-daed-7f9f-c13b-246d2ec96513 | 
| ds  | cca9a771-b5ef-5926-4c26-21151215a800 | 
| a1  | 1bb51584-e68a-21d1-a2df-e07707591b43 | 
+-----------+--------------------------------------+ 
10 rows in set (0.00 sec) 

mysql> select JobName,JobUUID from JobTBL; 
+---------+--------------------------------------+ 
| JobName | JobUUID        | 
+---------+--------------------------------------+ 
| aa  | 8afa9cf4-bf63-a4cd-3cd9-cbc6d17f84be | 
| aa1  | ecd0fab8-8bf1-83cc-b1d7-495034a55618 | 
+---------+--------------------------------------+ 
2 rows in set (0.00 sec) 

mysql> select JobUUID,BatchUUID from JobBatchStatusTBL; 
+--------------------------------------+--------------------------------------+ 
| JobUUID        | BatchUUID       | 
+--------------------------------------+--------------------------------------+ 
| ecd0fab8-8bf1-83cc-b1d7-495034a55618 | d288ff51-d045-d218-52fd-93e3523db85e | 
+--------------------------------------+--------------------------------------+ 
1 row in set (0.00 sec) 

감사

답변

0

귀하의 질의가 하나가 아니라에 행하므로, JobTbl에 JobBatchStatusTbl에 내부 조인두고 선택에 BatchName, BatchTBL에서 BatchUUID 다른 사람은 절대 반환되지 않습니다. 당신은이에 대한 테이블이 필요합니다

SELECT * 
    FROM BatchTbl 
WHERE JobUUID 
    NOT 
    IN (SELECT JobUUID 
      FROM JobBatchStatusTBL) 

내가 그것을에서 JobUUID를 사용하는 것은 불가능주의해야 할 곳이 만 배치를 반환하기 때문에 당신이 당신의 초기 쿼리에 시도하고 같은 절 귀하의 게시물에 따르면 해당 직업이 없습니다. 귀하의 게시물에 특정 직업이 있었기 때문에 귀하의 게시물이 오판 된 것인지 궁금하게 생각합니까?

또 다른 메모에서 스키마 유형을 설명하는 방식으로 표, 열 또는 다른 이름을 지정해서는 안됩니다.

+0

감사합니다 ... 귀하의 솔루션은 올바른 방향으로 나를 잡았습니다. 그러나 tbl/프로젝트가 개인적인 경우 tbl 이름/스키마 열에 관심이있는 사람은 누구입니까? 나는 당신이 공개 사이트의 백엔드에 대해 추상적으로 말하고 있다고 가정하고 있습니다. 다시 한 번 감사드립니다! –

+0

의심의 여지가, 바비, 그냥 proselytizing :) 나는 SQL 괴상한이야. –

0

select * from BatchTBL where JobUUID not in (select JobUUID from JobBatchStatusTBL) 
0

을보십시오. "JobBatchStatusTBL에없는 batchTuL을 얻기위한 쿼리를 얻으려면"

SQL 구문에 not를 사용하십시오. 쓰기 및 읽기가 더 쉬우 며 옵티마이 저가 나머지 부분을 처리합니다.

BatchUUID하지 (JobBatchStatusTBL에서 선택 BatchUUID)에