1
私は2 tables involved
次、私はsum of each product's quantityOrdered
が等しいか、私は次のことを試してみましたが、かなり私には、右に見えるdoes't 次の表を含むビューを作成するにはどうすればよいですか?
100を超えている
create a view popularProducts
、しようとしています:
SELECT productCode, productName, buyPrice, image FROM products JOIN orderDetails on products.productCode=orderDetails.products_productCode WHERE (SELECT SUM(quantityOrdered) >= 100);
OrderDetails
表:
CREATE TABLE `orderDetails` (
`products_productCode` bigint(20) UNSIGNED NOT NULL,
`orders_orderNumber` bigint(20) UNSIGNED NOT NULL,
`quantityOrdered` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
そしてproducts
テーブル:
CREATE TABLE `products` (
`productCode` bigint(20) UNSIGNED NOT NULL,
`productName` varchar(45) DEFAULT NULL,
`productDescription` text,
`quantityInStock` smallint(5) UNSIGNED DEFAULT NULL,
`buyPrice` decimal(7,2) UNSIGNED DEFAULT NULL,
`image` varchar(45) DEFAULT NULL
) E
を命じた私は 'すべてcolumns' BY GROUPが必要ですか?例えば 'productName'のように' GROUP BY'だけでは 'one column'では十分ではありませんか? – codeDragon
@codeDragon新しいリリースによると、選択リストにあるすべての列が必要です。詳細はこちら[12.19.3 GROUP BYのMySQL処理](https://dev.mysql.com/doc/refman/5.7/en /group-by-handling.html) –
intのエイリアスとして 'p'と' c'を指定する必要はありません: 'CREATE VIEW viewName AS SELECT p.productCode、p.productName、p.buyPrice、 P AS Productsからp.image はHAVING SUM(o.quantityOrdered)> = 100 p.productCode、p.productName、p.buyPrice、p.image BY = o.products_productCode GROUP p.productCodeにOなどたOrderDetailsをJOIN ; ' – codeDragon