sql >> データベース >  >> RDS >> Mysql

LEFT OUTER JOINを使用して、関連する行が存在しないことを確認するための最良の方法は何ですか

    SELECT count(id) FROM X 
    LEFT OUTER JOIN Y ON (y.X_id = X.id AND y.foo = 'bar')
    WHERE y.X_id is null
    

    あなたは近くにいました。

    最初に通常どおり結合を実行し、次にnot nullであるすべての行を選択します Yの行は実際にはnull 、したがって、nullだけでなく、「一致しない」ものがあることを確認してください。 Yの値。

    また、クエリで行ったタイプミス(修正後)にも注意してください。

    LEFT OUTER JOIN Y AS
    -- should be
    LEFT OUTER JOIN Y ON
    -- This however is allowed
    LEFT OUTER JOIN table2 as Y ON ....
    


    1. GreenDaofreemaker.jarがありません

    2. MySQL –影響を受ける行の総数に対するFOUND_ROWS()関数

    3. K-PostGISの最近傍クエリ

    4. OracleのLENGTH()関数