2012-07-07 29 views

回答

0

如果可以,最好避免子查询。 INNER JOIN将只返回符合连接条件的行。

SELECT DISTINCT 
    x.id 
FROM 
    table_x x 
    INNER JOIN table_y y ON (x.id = y.id_column_in_y) 
1

你会使用一个左连接。更多解释和例子在这里。

Visual Joins

2

也许你可以这样做:

SELECT id FROM table_x WHERE id NOT IN (SELECT column_foo FROM table_y); 
4
SELECT id FROM x 
    WHERE NOT EXISTS (SELECT * FROM y WHERE foo = id) 

或者

SELECT id FROM x 
    WHERE id NOT IN (SELECT foo FROM y) 

或者,如果y.foo是不是空的列,你甚至可以这样做:

SELECT x.id FROM x 
    LEFT JOIN y ON x.id = y.foo 
    WHERE y.foo IS NULL 
相关问题