2016-04-18 8 views
1

私は次のクエリを持っており、それが「間違った」であるSQL

select 
     request0_.id as id1_12_, 
     request0_.pdf_path as pdf_path2_12_ 
    from 
     request request0_ 
    cross join 
     ptol_user ptoluser1_ 
    where 
     request0_.auditor_user_id=ptoluser1_.id 
     and request0_.applicant_user_id=3 
    order by 
     ptoluser1_.last_name asc 

をクロステーブルを並べ替える私は2番目のテーブルからの姓が注文したこのクエリを作りたいが、いくつかの行にvarvharがnullであり、それはなります彼らはどこの最初の条件から結果としてこれらを消滅させる。それが可能であれば私はいくつかの解決策を望んでおり、春の使用のためにjava jpaにします

+0

サンプルデータと望ましい結果は、あなたがしようとしていることを伝えるのに役立ちます。たとえば、 "varvhar"とは何ですか? –

答えて

0

2番目のテーブルに一致がない行を含める場合は、CROSS JOINではなくLEFT JOINを使用する必要があります。

SELECT request0_.id as id1_12_, request0_.pdf_path as pdf_path2_12_ 
FROM request as request0_ 
LEFT JOIN ptol_user AS ptoluser1_ ON request0_.auditor_user_id = ptoluser1_.id 
WHERE request0_.applicant_user_id = 3 
ORDER BY ptoluser1_.last_name ASC 
+0

私はjpa-hibernateを使用しており、自動的にこのコードを生成します。 –

+0

いいえ、申し訳ありませんが、私はjpa-hibernateについて何も知らないです。 – Barmar