SQL查询 - 与连接相反?

Mad*_*Seb 2 sql optimization

我有以下表格:

Table ROWS ( **RowId**, Title)

Table CELLS ( **CellId**, RowId, Title) 

Table ERRORS ( **ErrorId**, CellId, Title )
Run Code Online (Sandbox Code Playgroud)

因此行可以有单元格,单元格可能有错误.

如何编写检索单元格没有错误的行的查询?

我知道这样的事情会起作用,但我想知道是否可以以更有效的方式完成:

QUERY1

SELECT ROWS.RowID FROM ROWS 
 JOIN CELLS ON ROWS.RowId = CELLS.RowID 
 JOIN ERRORS ON ERRORS.CellId = CELLS.CellId
Run Code Online (Sandbox Code Playgroud)

QUERY2

SELECT * FROM ROWS 
WHERE ROWS.RowId NOT IN ( QUERY1 )** 
Run Code Online (Sandbox Code Playgroud)

有关如何以更有效的方式做到这一点的任何想法?

Cha*_*ndu 6

尝试:
1)

SELECT R.RowID      
FROM ROWS  R LEFT JOIN 
(
    SELECT DISTINCT RowID
      FROM  CELLS  JOIN ERRORS       
              ON ERRORS.CellId = CELLS.CellId 
) C  ON R.RowId = C .RowID
 WHERE C.RowID  IS NULL 
Run Code Online (Sandbox Code Playgroud)

2)或

SELECT ROWS.RowID 
    FROM ROWS   JOIN CELLS 
   ON ROWS.RowId = CELLS.RowID   
WHERE NOT EXISTS
(
    SELECT 1
      FROM   ERRORS 
        WHERE ERRORS.CellId = CELLS.CellId 
)    
Run Code Online (Sandbox Code Playgroud)