आप इस प्रकार की धुरी के लिए चर का उपयोग कर सकते हैं, लेकिन क्वेरी थोड़ी अधिक जटिल है, क्योंकि आपको प्रत्येक आदेश के लिए मानों की गणना करने की आवश्यकता है:
SELECT o.order_id,
MAX(case when rank = 1 then created_at end) as created_at_1,
MAX(case when rank = 1 then email end) as email_1,
MAX(case when rank = 1 then content end) as content_1,
MAX(case when rank = 2 then created_at end) as created_at_2,
MAX(case when rank = 2 then email end) as email_2,
MAX(case when rank = 2 then content end) as content_2,
FROM orders o LEFT JOIN
(SELECT oc.*,
(@rn := if(@o = order_fk, @rn + 1,
if(@o := order_fk, 1, 1)
)
) as rank
FROM order_comments oc CROSS JOIN
(SELECT @rn := 0, @o := 0) vars
ORDER BY order_fk, created_at
) oc
ON o.order_id = oc.order_fk
GROUP BY o.order_id;