Comment combinez-vous une intérieure et extérieure de la rejoindre dans mysql

Je peux le faire dans sybase et je peux le faire dans oracle, mais je ne vois pas comment faire dans mysql.

J'ai obtenu ceci:
(veuillez limiter vous-même à partir de re-formatage de mon sql, la dernière fois que quelqu'un l'a fait qu'ils ont changé de sorte qu'il n'était pas le même et en fait la question de sens)

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')

Et je reçois toutes sortes de résultats qui n'ont pas de sens.

Je veux obtenir une liste de tous les id de la table table1 où table2.données = chat, puis faire une jointure externe avec les résultats de cette contre le tableau 3 où tableau3.données = chien.

Je remarque que je ne peux pas spécifier la même table/alias pour table1 dans les deux clauses de jointure, donc ce qui m'amène à croire que mysql est en cours d'exécution les expressions de jointure séparément et ORing les résultats de l'ensemble ou quelque chose comme ça.

J'ai aussi essayé de se débarrasser de l ' "inner join" dans la section de, et de le mettre dans la clause where, qui ne fonctionne pas non plus, même si cela n'a pas de travail d'une manière différente (a différents des résultats erronés)

Ce serait si facile de sybase ou oracle.

Ce que je fais mal?

OriginalL'auteur stu | 2009-01-08