【发布时间】:2014-03-14 12:42:26
【问题描述】:
CREATE TABLE subscription (
magazine_id bigint,
user_id bigint,
PRIMARY KEY (magazine_id, user_id)
);
CREATE TABLE delivery (
magazine_id bigint,
user_id bigint,
FOREIGN KEY (subscription) REFERENCES subscription (magazine_id, user_id)
);
在给定特定订阅的情况下,查询交付的好方法是什么?有没有办法将列名分配给PRIMARY KEY (magazine_id, user_id) 和相应的外键,以便我可以这样查询:
SELECT *
FROM subscription
JOIN delivery ON (delivery.subscription_fk = delivery.subscription_pk);
注意:我可以这样写:
SELECT *
FROM subscription
JOIN delivery ON (delivery.magazine_id = subscription.magazine_id
AND delivery.user_id = subscription.user_id);
但是,我的印象是有一种不那么冗长的方法来实现这一点。
【问题讨论】:
标签: sql postgresql join natural-join