go pg # 42P01 недопустимая ссылка на предложение FROM - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь выполнить левое соединение по запросу, но у меня недействительная ссылка на FROM-Clause, вот структура кода

это таблица продукта

CREATE TABLE products
(
    id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    title VARCHAR(255),
    productdesc TEXT,
    costprice DOUBLE PRECISION,
    recommendprice DOUBLE PRECISION,
    views BIGINT DEFAULT 0,
    enabled BOOLEAN DEFAULT FALSE,

    category_id BIGINT REFERENCES categories (id) ON DELETE CASCADE NOT NULL,

)

это таблица категорий

CREATE TABLE categories
(
    id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    pid BIGINT NOT NULL,
    title VARCHAR(255),
    image VARCHAR(255),

);

это структура типа

type Product struct {
    TableName struct{} `sql:"products"`
    ID          int64  `json:"id"`
    TITLE string `json:"title"`
    PRODUCTDESC string `json:"product_desc"`
    COSTPRICE float64 `json:"costprice"`
    RECOMMENDPRICE float64 `json:"recommendprice"`
    VIEWS int64 `json:"views"`
    ENABLED bool `json:"enabled"`
    CATEGORYNAME string `json:"categoryname"`
}
type Category struct {
     tableName struct{} `pg:"categories"`
    ID      int64  `json:"id"`
    Title   string `json:"title"`
    Image   string `json:"image"`
}

это фактический запрос к базе данных

func (t *ProductRepo) GetAllProducts() ([]*domain.Product, error) {
    var products []*domain.Product
    query := t.DB.Model(&products).
        ColumnExpr("products.*").
        ColumnExpr("c.id AS category_id, c.title AS categoryname").
        Join("LEFT JOIN categories AS c ON c.id = products.category_id")

    err := query.Select()
    if err != nil {
        return nil, err
    }

    return products, nil
}

это фактическая ошибка из почтальон

{
    "error": "ERROR #42P01 invalid reference to FROM-clause entry for table \"products\""
}

любая помощь будет отличной,

заранее спасибо

Джейсон

...