私は2つのテーブルを持ってい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
これは機能しません。そもそもアイテムが選択されていないのは、結合のためだと思います。
私は何をすべきか?