2015-06-17 4 views
-2

У меня есть эти таблицы:макс() и количество() SQL

Customers (cid , cname) 
Products (pid , pcolor) 
Reservations (pid , cid , date) 

мне нужно знать, какой цвет является продуктом, который был зарезервирован в самый раз, и до сих пор я писал:

 SELECT p.color, count(p.pid) as j 
     FROM products as p , reservations as res 
     WHERE p.pid = res.pid 
     GROUP BY p.color 
     ORDER BY j DESC 
     LIMIT 1 

Теперь этот запрос работает хорошо, но есть небольшая проблема, если есть два разных продукта с двумя разными цветами, которые были зарезервированы столько же раз, сколько дает мне только один из них (из-за «LIMIT 1»). . что я могу сделать?

+0

Is pid <--> pcolor one to one отношение? – uhs

+0

да это один к одному! –

ответ

-1
SELECT pr.pcolor, count(pr.pid) 
FROM Products pr 
JOIN Reservations res 
ON pr.pid = res.pid 
GROUP BY pr.pcolor 
+0

это точно такой же код, как и op, с различным псевдонимом. –

+0

Возможно, это было вызвано отправкой ответа в одно и то же время? – DNac

+0

Я имею в виду, что у вас есть тот же код, что и ** вопрос **, за исключением псевдонимов. –

Смежные вопросы