0
從下面的數據庫中,我已經掙扎了幾天,以獲得最捐贈給兒童的玩具。我對mysql的使用經驗有限,迄今爲止我通過這個論壇和網絡進行的搜索並沒有讓我明白我做錯了什麼。與插入的數據Here's數據庫:諮詢mysql選擇獲取最捐贈給兒童的玩具
DROP DATABASE IF EXISTS gifts;
CREATE DATABASE gifts ;
USE gifts ;
CREATE TABLE children
(
id_children INT NOT NULL PRIMARY KEY AUTO_INCREMENT ,
name_child VARCHAR(50) NOT NULL,
age INT NOT NULL
) ;
CREATE TABLE toys
(
id_toy INT NOT NULL PRIMARY KEY AUTO_INCREMENT ,
name_toy VARCHAR(50) NOT NULL,
age_adequate INT NOT NULL
) ;
CREATE TABLE gifts
(
id_children INT NOT NULL ,
id_gift INT NOT NULL ,
PRIMARY KEY(id_children, id_gift),
FOREIGN KEY (id_children) REFERENCES children(id_children),
FOREIGN KEY (id_gift) REFERENCES toys(id_toy)
) ;
INSERT INTO children
VALUES
(1,'Juan Perez',5),
(2,'Jordi Lopez',8),
(3,'Marta Santiago',12),
(4,'Laura Martinez',5),
(5,'Gerard Laudo', 2) ;
INSERT INTO toys
VALUES
(1,'Scalextric',12),
(2,'Barbie',3),
(3,'Bicicleta',5),
(4,'Monopoly',12),
(5,'Casa Feber',1),
(6,'Palacio princesas',5),
(7,'Nintendo DS',12),
(8,'Puzzle',5),
(9,'Sonajero',1);
INSERT INTO gifts
VALUES
(1,3),
(2,3),
(2,8),
(3,3),
(3,7),
(3,4),
(4,2),
(4,8),
(5,9)
這是諮詢,我實現。
select name_toy,max(times_given_as_gift) as max_gift
from toys t,
(select id_gift,count(*) as times_given_as_gift from gifts g
group by id_gift) as aux
where aux.id_gift = t.id_toy
group by times_given_as_gift
然後我得到這個在我的查詢結果:
name_toy max_gift
Barbie 1
Puzzle 2
Bicicleta 3
在這種情況下,Bicicleta確實是已經捐贈作爲禮物的次數最多的玩具,因爲我已經檢查了它從表數據,但我只希望它在我的查詢結果中顯示爲單行。我怎麼能做到這一點?
任何建議/注意/指導將有所幫助。 先驗謝謝。