私はsybaseでそれを行うことができ、oracleでそれを行うことができますが、mysqlでそれを行う方法がわかりません。
私はこれを持っています:(私のSQLを再フォーマットしないようにしてください、前回誰かがそれを変更したので同じではなく、質問を無意味にしました)
select table1.id
from
table1
inner join
table2 on (table1.id = table2.id and table2.data='cat'),
table1 t1
left outer join
table3 on (t1.id = table3.id and table3.data = 'dog')
そして、私は意味をなさないあらゆる種類の結果を得る。
table2.data = catであるtable1からすべてのIDのリストを取得し、table3.data=dogであるtable3に対してその結果を使用して外部結合を実行したいと思います。
2つの結合句でtable1に同じテーブル/エイリアスを指定できないことに気付きました。そのため、mysqlは結合式を個別に実行し、結果をORで結合していると思います。
また、fromセクションの「innerjoin」を削除してwhere句に入れてみましたが、これも機能しませんでしたが、別の方法では機能しませんでした(異なる誤った結果が得られました)
これは、sybaseまたはoracleでは非常に簡単です。
私は何が間違っているのですか?