【问题标题】:SQL query improvement (extra column in table)SQL查询改进(表中的额外列)
【发布时间】:2017-10-11 09:26:57
【问题描述】:

我在 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 = 'dvader@deathstar.galacticempire') X
on R.id = X.id

【问题讨论】:

  • 更新您的问题添加适当的数据样本和预期结果
  • 你写过子查询吗?如果你只写子查询,它会给出相同的输出

标签: mysql sql select join


【解决方案1】:

看起来你需要食谱中的所有东西,上面有 vader@deathstar.galacticempire 喜欢的标记

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 = 'dvader@deathstar.galacticempire') likedR
on R.id = likedR.id

【讨论】:

    【解决方案2】:

    感谢大家的帮助。

    我可以用这个查询做我想做的事:

    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 = 'dvader@deathstar.ge') X 
    on R.id = X.id 
    where R.email = U.email
    

    如果 dvader 的条目在另一个表中,这会将我需要的所有信息加上 1 个额外的列,其中 1 或 null,使用连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 2021-04-04
      • 2015-01-12
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多