「関連」行「行方不明」を見つけるために参加し、 はusers(int user_id)
とuser_books(int user_book_id,int user_id,int book_id)
と二つの追加のテーブルbooks(int book_id, varchar book_title, int author_id)
とauthors (int author_id, varchar author_name)
は言います。MySQLは私は2つのテーブル間の所有関係を持っている
具体的にはuser_id
と書かれていますが、著者が書いた場所には、他の本が書かれているとは限りません。
ユーザーがBOOK1(すなわちuser_books
で、このための行が存在する)、どこでBOOK1と同じ作者によって書かれていることBOOK2とBOOK3を持っていないを持っているのであれば、私は、BOOK2およびBOOK3のIDを取得したいです。
私はSELECT WHERE NOT IN()を使用してこれを行うことができますが、パフォーマンス上の理由から私は結合ベースのソリューションを探しています。
外部結合を試しましたか? –
私が言ったように、私はこれを "select not in in"を使って書くことができますが、私は結合を使いたいと思います。私はそれが何らかの形で左結合を使用して行う必要があることを認識していますが、私は正確な方法を確信していません。 – epeleg
私はまた、いくつかのユーザーがすでに1つのuser_book以上のものを持っているかもしれないという事実で問題を抱えています。 – epeleg