Я должен прийти и спросить это, потому что я уже злюсь и плачу, и все, потому что это действительно убивает меня.Я ненавижу SQL.Но это должно быть сделано.Веб-сайт использует SQL.
У меня есть эти таблицы (сокращенные до необходимого, а не реального SQL):
CREATE TABLE deliverer(d_id INT PRIMARY KEY, name VARCHAR(80));
CREATE TABLE article(a_id INT PRIMATY KEY, brand VARCHAR(80));
CREATE TABLE delivers(d_id FOREIGN KEY(deliverer), a_id FOREIGN KEY(article));
мне нужно, для каждого brand
тех deliverers
, которые обеспечивают наибольшеестатьи.Я дошел до этого после всего лишь двух часов сумасбродства:
SELECT brand, MAX(cnt)
FROM
(SELECT COUNT(a.a_id) AS cnt, a.brand, d.d_id, d.name
FROM derliverer d, delivers l, article a
WHERE a.a_id = l.a_id AND l.d_id = d.d_id
GROUP BY a.brand, d.d_id, d.name)
GROUP BY brand;
То, что я действительно, действительно, действительно не понимаю в SQL, - это то, почему он не позволяет мне GROUP BY brand
и SELECT
d.name, d.d_id
.Это действительно бессмысленно.
Пожалуйста, помогите мне, прежде чем я выпрыгну из окна.