Объединить два запроса из двух таблиц в одну структуру

У меня есть структура под названием Ads

type Ads struct {
    ID      int `json:"id"`
    Subject string `json:"subject"`
    Phone   string `json:"phone"`
}

func GetAdsPostgres() (ads []Ads, err error) {
    ads = make([]Ads, 0)
    rows, err := db1.Query("Select ad_id, subject FROM ads limit 200 ")
    for rows.Next() {
        var ad Ads
        rows.Scan(&ad.ID, &ad.Subject)

        test := reflect.ValueOf(ad.ID)
        addd := test.Interface().(int)
        rows1, _ := db1.Query("Select phone FROM ads where ad_id=$1", addd)
        rows1.Scan(&ad.Phone)

        ads = append(ads, ad)
        rows1.Close()
    }

    if err = rows.Err(); err != nil {
        return
    }
    return
}

не думая о присоединении к таблице, потому что в телефоне есть несколько значений перечисления, которые я должен преобразовать как поля после

Ваш if err = rows.Err(); err != nil { return } совершенно не нужен. Нет необходимости в if ... { return } return. Вобще return.

Flimzy 11.04.2018 11:38

@Flimzy для телефона имеет значение перечисления: местное, региональное, международное с каждым значением, поэтому я создал структуру, содержащую все поля с перечислением телефона, поэтому я должен следовать этому методу

dev_medo 11.04.2018 12:23

@dev_medo: Это не имеет отношения к моей точке зрения. Наличие «if x do y else do y» идентично просто «y».

Flimzy 11.04.2018 12:27
1
3
62
1

Ответы 1

Просто получите номер телефона в первом запросе; не повторяйся.

db1.Query("Select ad_id, subject, phone FROM ads limit 200 ")

для телефона есть значение перечисления: местное, региональное, международное с каждым значением, поэтому я создал структуру, имеющую все поля с перечислением телефона, поэтому я должен следовать этому методу

dev_medo 11.04.2018 12:09

Другие вопросы по теме