内部 SQL 查询

Internal SQL query

我想通过 SQL 查询获取 PAYMENT_GATEWAY 名称。我使用这个表:

CREATE TABLE PAYMENT_GATEWAY(
 ID SERIAL NOT NULL,
 NAME TEXT
)
;

ALTER TABLE PAYMENT_GATEWAY ADD CONSTRAINT KEY38 PRIMARY KEY (ID)
;

CREATE TABLE PAYMENT_GATEWAY_ACCOUNT(
 ID SERIAL NOT NULL,
 PAYMENT_GATEWAYT_ID INTEGER
)
;

CREATE INDEX IX_RELATIONSHIP18 ON PAYMENT_GATEWAY_ACCOUNT (PAYMENT_GATEWAYT_ID)
;

ALTER TABLE PAYMENT_GATEWAY_ACCOUNT ADD CONSTRAINT KEY39 PRIMARY KEY (ID)
;

select查询

SELECT * FROM PAYMENT_GATEWAY_ACCOUNT

如您所见,我将 PAYMENT_GATEWAYT_ID 存储为数字。如何将 SQL 查询修改为 select 列 NAME 为 PAYMENT_GATEWAY 并显示名称字符串作为结果?

据我所知,您问的是如何将这两个表连接在一起 - 请澄清这是不正确的。

SELECT
    pga.ID,
    pg.NAME
FROM
    PAYMENT_GATEWAY_ACCOUNT pga
INNER JOIN
    PAYMENT_GATEWAY pg
    ON (pg.ID = pga.PAYMENT_GATEWAYT_ID);

以上将为您提供与 PAYMENT_GATEWAY_ACCOUNT

中的 ID 关联的 NAME

另一件需要注意的事情是,您应该考虑添加对 PAYMENT_GATEWAY_ACCOUNTFOREIGN KEY 引用以保持参照完整性。

CREATE TABLE PAYMENT_GATEWAY_ACCOUNT(
    ID SERIAL NOT NULL,
    PAYMENT_GATEWAYT_ID INTEGER REFERENCES PAYMENT_GATEWAY(ID)
);

来自文档: https://www.postgresql.org/docs/current/static/ddl-constraints.html#DDL-CONSTRAINTS-FK