Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich erzwingen, dass eine Unterabfrage nur eine Zeile zurückgibt?

Sie können LEFT JOIN verwenden statt Sub-Query .

Versuchen Sie Folgendes:

SELECT e.id, e.table_code,g.*
FROM events e
LEFT JOIN (SELECT MIN(date_time) date_time,
         SUM(score) score,
         type,
         post_id,
         table_code,
         comment_id,
         context
   FROM events 
   WHERE author_id = 32
   GROUP BY type, post_id, table_code, comment_id, context
   ORDER BY MIN(date_time) DESC
   LIMIT 15 ) g ON e.table_code = g.table_code AND e.date_time >= g.date_time
WHERE e.author_id = 32
ORDER BY seen ASC, e.date_time DESC