2016-11-11 15 views
0

私はウェブ上でこれについての答えを探してきました。ここの誰かが私にこれを助けてくれることを願っています複数のテーブルに1つの結合で参加する

propelを使用して以下のクエリを作成しようとしています。可能だ?

 

SELECT * FROM table1 
LEFT JOIN (table2, table3) ON (
    table1.id = table2.foreign_id 
    AND table2.foreign_id = table3.id 
); 

+0

サンプルデータのサンプルデータと期待される結果を掲載してください。私はSQLが理解できると確信しています。 Joinキーワードを使用してANSI-92 Join表記と '、' join表記を混同しないように心配しています。おそらくpropelは何か違うことをするでしょう。 – xQbert

+0

2つの結果が異なるため、私はあなたのスタンドがジョイント表記になっていることに注意しています。私は実際には1つではなく2つの別々の結合を使用してみましたが、左結合を使用しているため結果が異なりました。内部結合のために動作します。しかし、残念ながらそれは私が探しているものではありません。とにかく、返信いただきありがとうございます、私はカスタムSQLを使用して、プロペラから***をハックすることに決めました。 – uji

答えて

0

これを試しましたか?

Table1Query::create() 
    ->useTable2Query(null, Criteria::LEFT_JOIN) 
    ->useTable3Query(null, Criteria::LEFT_JOIN) 
    ->endUse() 
    ->endUse() 
    ->find(); 
+0

うんうん。異なるSQLクエリを生成します。私はそれが不可能であることをプロペラから読みました。正しい唯一の方法はカスタムSQLです。 – uji

関連する問題