を立ち往生していますが、私は、このようなSQLクエリを持って考えてみます。私はそれがSQLでどのように見えるかを知っているが、私はHQLでそれを必要と
SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.table2_id = t2.id
WHERE t2.value = 'something' OR t1.value = 'something';
私はHQLクエリーで行われ、同じことをする必要があります。 詳細情報:私はクラス表1と表2があると、両方のフィールドクラス表2のtable2のを持つフィールドの名前値と表1を持ちます。私が欲しいのは、特定の値を持っているか、それがメンバーtable2のが一定値を持っており、私はtable2のフィールドがヌルであるかもしれないことを知っているのです表1オブジェクトのリストを取得することです。
私は成功することなくそれをしようとするたびに説明することなく、できる限り明確に質問を策定しようとしました。申し訳ありませんが、それは非常に明確ではない場合。
あなたのクエリは奇妙に見えますが、あなたはテーブルに参加していません。私はこれを除外します:SELECT * FROM table1 t1 left join table2 t2 on t1.table2_id = t2.id ここで(t2.value = 'something' OR t1.value = 'something') –
@ t-clausen.dkこれは暗黙的な結合です(http://en.wikipedia.org/wiki/Join_(SQL)#Inner_joinを参照)。 – Borealid
@Borealid ok、table1 value = 'something'の場合に返される行の数を教えてください。答え:これは、テーブル2に存在する行数だけ返します。 –