假设我有以下关系:
book_id = (1608, 2934, 1608), stock = (10,20,30)
,可由以下代码生成:
SELECT book_id, stock
FROM editions JOIN stock ON (editions.isbn = stock.isbn);
和我想产生以下关系:
book_id = (1608, 2934), stock =(40,20),其中书1608的两组库存已经加在一起。我该怎么做呢?我试过了:
SELECT book_id, stock
FROM editions JOIN stock ON (editions.isbn = stock.isbn)
GROUP BY book_id;
但这不起作用
谢谢!
您的查询将在大多数数据库中失败,因为stock
不是聚合函数的一部分。(唯一接受这种非标准语法的数据库是MySQL。)
您正在寻找sum()
函数。我还建议使用表别名:
SELECT e.book_id, sum(s.stock)
FROM editions e JOIN
stock s
ON e.isbn = s.isbn
GROUP BY e.book_id;