亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

良好的實施

良好的實施

Go
蕭十郎 2022-08-01 15:36:25
我正在嘗試執行以下查詢MySQL通過此查詢,可以獲取比賽中汽車的分類,以及這些汽車的駕駛員查詢:SELECT * FROM results INNER JOIN cars ON results.idCar = cars.IdINNER JOIN drivers ON cars.id = drivers.idCarWHERE idSesson = 7 ORDER BY classificationASC此查詢返回 2 個模型:結果、會話。并返回每輛車的駕駛員列表問題是它返回每個飛行員的結果,也就是說,相同的結果可以出現3次,只是飛行員不同,我想在一個JSONArray使用此查詢,我使用此實現    result := structs.Result{}    lastResult := structs.Result{}    results := []structs.Result{}    driver := structs.Driver{}    drivers := []structs.Driver{}    for rows.Next() {        var sesson structs.Sesson        var car structs.Car        err = rows.Scan(&result.Id, &sesson.Id, &car.Id, &result.Type, &result.Classification, &result.Category, &car.Id, &car.IdTeam,             &car.Name, &car.Number, &car.Model, &car.Manufacturer, &car.TyerBrand, &car.CarImage, &driver.Id, &driver.IdCar,            &driver.Name, &driver.Age, &driver.DateOfBrith, &driver.Country, &driver.FlagCountry, &driver.Facebook, &driver.Twitter, &driver.Website, &driver.Picture)        if err != nil {            fmt.Printf("Error in scan")            panic(err.Error())        }        result.Sesson = sesson        result.Car = car        drivers = append(drivers, driver) // i stor the drivers in one array        // check if end the duplicated, info        if (lastResult.Id != 0 && lastResult.Id != result.Id) {            results = append(results, lastResult)        }                // store the last result        lastResult = result    }    // add last result    results = append(results, lastResult)    // save the drivers in JSONArray in each jsonObject    for i := 0; i < len(results); i++ {        for j := 0; j < len(drivers); j++ {            if (results[i].Car.Id == drivers[j].IdCarro) {                results[i].Drivers = append(results[i].Drivers, drivers[j])            }        }    }    // transform data in json    jsonData, err := json.Marshal(results)    if err != nil {        fmt.Printf("error in marsahl")    }    db.Close()    return jsonData這是一個好的實現嗎?對于這個問題??
查看完整描述

1 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

您可以做的幾件事

  1. 修復結果變量的作用域,將其移動到循環內,它不會在其他任何地方使用

  2. 無需創建會話和汽車變量,而是直接掃描到結果變量中

  3. 使用映射刪除嵌套的 for 循環將節省獲得線性復雜性的時間


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號