我有两张桌子,items
和bids
。
create table items (
id serial primary key,
store_id int,
min_bid int
);
create table bids (
item_id int,
amount int
);
我想选择项目并包含有关最高出价的信息。
select items.*, max(bids.amount) from items
join bids on bids.item_id = items.id
where items.store_id = $store_id
group by items.id
但是,当没有针对特定项目的出价时,该项目就不会被选中。我怎样才能做到这一点,以便在没有出价时,该项目仍然被选中并用 填充max(bids.amount)
列items.min_bid
?(或者 0 也可以。)
我试过这个:
select items.*, coalesce(max(bids.amount), items.min_bid) from items
join bids on bids.item_id = items.id
where items.store_id = $store_id
group by items.id
这是行不通的。我假设这是因为加入项目没有首先被选中。
我应该怎么办?