将SQL查询转换为Doctrine DQL联接和分组依据

问题描述

我需要将SQL查询转换为Doctrine DQL。

SELECT g.id,g.round_id,g.score,g.prize_id
FROM game g
INNER JOIN (
    SELECT prize_id,MAX(score) score
    FROM game
    GROUP BY prize_id
) g2 
ON g.prize_id = g2.prize_id AND g.score = g2.score
ORDER BY prize_id DESC

该怎么做?

解决方法

我已经在Dctrine DQL中找到了如何做:

struct MenuGroup : View {
    
    @State var show = false
    var text: String
    var body: some View {
        
        VStack {
            Button(action: {
                self.show.toggle()
            }) {
                HStack {
                    Text(text)
                        .lineLimit(2)
                    Spacer()
                }.padding(.all,16)
            }
            
            if show  {
                ForEach(1...3,id: \.self) { item in
                    Text("Option \(item)")
                }
            }
        }
    }
}


struct ContentView: View {

    var body: some View {
        ScrollView {
            MenuGroup(text: "long text long text long text long text long text long text")
            MenuGroup(text: "long text long text long text long text long text long text")
            MenuGroup(text: "long text long text long text long text long text long text")
        } .animation(.linear(duration: 1.1))
    }
}