2017-05-12 8 views
0

私はSQLでこのクエリを知っているが、ひどく書かれています。あなたは、まともな、普通の人のやり方でそれを書くのを手伝ってもらえますか?SQLクエリの改善(テーブルの余分な列)

ありがとうございました。

select distinct R.*, X.LIKED 
from Recipe R 
left join (select distinct R.* , '1' as LIKED 
      from Recipe R, Likes L 
      where R.id = L.idRecipe 
      and L.email = '[email protected]') X 
on R.id = X.id 
+0

質問の更新適切なデータサンプルと期待される結果を追加してください – scaisEdge

+0

あなたはサブクエリを書いていますか?あなただけのサブクエリを書く場合は、同じアウトを与えるだろう –

答えて

0

あなたはすべてのあなたの助けを[email protected]

select R.*, likedR.LIKED 
from Recipe R 
left join (select distinct R.id , '1' as LIKED 
      from Recipe R 
       inner join Likes L on R.id = L.idRecipe 
      where 
       L.email = '[email protected]') likedR 
on R.id = likedR.id 
0

に好かみんなありがとう上のマークとレシピから必要なように見えます。

私は、私はこのクエリを望んで行うことができました:

select distinct R.*, X.LIKED, U.imgUrl 
from User U, Recipe R 
left join 
    (select distinct R.* , '1' as LIKED 
    from Recipe R, Likes L 
    where R.id = L.idRecipe and L.email = '[email protected]') X 
on R.id = X.id 
where R.email = U.email 

dvaderのエントリ場合、これは1またはnullのいずれかで、すべての私は1つのテーブルに必要な情報を加えた1つの余分な列をもたらします別のテーブルに、結合を使用しています。

関連する問題