【问题标题】:Modify existing query修改现有查询
【发布时间】:2021-04-16 22:41:20
【问题描述】:

我有两张桌子

create table jobs (
    id varchar unique primary key,
    account_email varchar not null,
    active boolean not null default true,
    enabled boolean not null default false,

    name varchar (50) not null,
    ...
);

create table job_tags (
    job_id varchar not null,
    tag varchar(50) not null,

    foreign key (job_id) references jobs(id) on delete cascade,
    unique (job_id, tag)
);

这个 sql 查询得到工作SELECT * FROM jobs INNER JOIN job_categories ON (jobs.category_id=job_categories.category_id) WHERE jobs.id=$1

由于我没有什么经验,我再执行一次查询以加载 job_tags。是否可以只创建一个?我使用 golang sqlx,谢谢

【问题讨论】:

    标签: postgresql go sqlx


    【解决方案1】:

    是的,你几乎明白了:

    SELECT * FROM jobs
    INNER JOIN job_categories ON (jobs.category_id=job_categories.category_id) 
    INNER JOIN job_tags ON (jobs.id = job_tags.job_id)
    WHERE jobs.id=$1
    

    【讨论】:

    • 问题是它实际上返回不止一行,因为我可以有很多标签,我需要能够将它们加载到数组中,这很复杂。也许有不同的方法?
    • 是的,您可以使用像 gorm.io 这样的 ORM(对象关系映射器)来为您管理这些关联
    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 2015-11-21
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多