Макияж, чтобы получить 2 объекта с native nativeQuery с MAX (ID)

0

У меня есть таблица с именем Story:

sID |  sName  |  sView  
 1  |   s1    |    1  
 2  |   s2    |    11  
 3  |   s3    |    142 
 4  |   s4    |    152

Таблица:

 chID  |  sID  |  chName  |  chContent
   1   |   1   |    ch1   |    aaa  
   2   |   2   |    ch2   |    aaa  
   3   |   3   |    ch3   |    aaa  
   4   |   1   |    ch4   |    aaa  
   5   |   3   |    ch5   |    aaa  
   6   |   1   |    ch6   |    aaa  
   7   |   2   |    ch7   |    aaa  

NaviteQuery:

SELECT s.*, MAX(c.chID) as chapterID FROM Story s 
       LEFT JOIN Chapter c ON s.sID = c.sID
       GROUP BY s.sID

Результат:

 sID |  sName  |  sView  |  chapterID  
  1  |   s1    |    1    |      6
  2  |   s2    |    11   |      7
  3  |   s3    |    142  |      5
  4  |   s4    |    152  |     null

Но вы должны получить "SELECT s. *, c. * FROM.... ', кто может мне помочь !!!!

  • 0
    В вашем NativeQuery WHERE должно быть FROM .
  • 0
    Экзамен: «ВЫБЕРИТЕ s. *, C. * ГДЕ ИСТОРИЯ s ЛЕВОЕ СОЕДИНЕНИЕ Глава c ON s.sID = c.sID WHERE c.chID = (ВЫБЕРИТЕ МАКС. (ChID) ИЗ ГЛАВЫ) GROUP BY s.sID».
Показать ещё 2 комментария
Теги:
hibernate
spring-data-jpa

1 ответ

0
Лучший ответ

Вы можете написать это несколькими способами. Например, вы можете использовать его:

SELECT s.*, c.* FROM Story s 
       LEFT JOIN (SELECT * FROM Chapter c INNER JOIN (SELECT MAX(c.chID) as chapterID FROM Story s 
       LEFT JOIN Chapter c ON s.sID = c.sID
       GROUP BY s.sID) d ON c.chID = d.chapterID) c ON s.sID = c.sID 
  • 0
    Благодарю. Но результат не вернул sID = 4. Пока нужно использовать sID = 4.
  • 0
    Попробуйте мой новый запрос
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню