SQL - Как объединить наиболее упорядоченные результаты из таблицы изображений с таблицей продуктов? - PullRequest
1 голос
/ 16 августа 2010

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

Продукты

  • id
  • имя
  • модель

Картинки

  • id
  • pid
  • url
  • order

Картинка длякаждый пид с высшим порядком является обложкой.Для каждого продукта может быть более 1 изображения.

Я хочу присоединиться к этому результату при запросе продуктов, чтобы он показывал этот результат

id, name, model, url (cover picture/highest order for this pid)
---------------------------------------------------------------

, но я схожу с ума, пытаясьзаставить его работать.Пока мне удается заставить его работать, присоединившись к изображению, как показано ниже, но я не могу заставить его присоединиться только к изображению с высшим порядком ...

SELECT p.id,
       p.name,
       p.model,
       x.url 
  FROM products p 
  JOIN pictures x ON (p.id = x.pid)

Может кто-нибудь помочь мневыход, пожалуйста?

1 Ответ

1 голос
/ 16 августа 2010

Использование:

SELECT p.id,
       p.name,
       p.model,
       x.url 
  FROM PRODUCTS p 
  JOIN PICTURES x ON x.pid = p.id
  JOIN (SELECT t.pid,
               MAX(t.order) AS max_order
          FROM PICTURES t
      GROUP BY t.pid) y ON y.pid = x.pid
                       AND y.max_order = x.order
...