Více se mi líbí jiný přístup popsaný v podobné otázce:https://stackoverflow.com/a/11885521/ 2215679
Tento přístup je lepší zejména v případě, kdy potřebujete v SELECTu zobrazit více než jedno pole. Chcete-li se vyhnout Error Code: 1241. Operand should contain 1 column(s)
nebo dvakrát podvýběr pro každý sloupec.
Pro vaši situaci by měl dotaz vypadat takto:
SELECT
c.id,
c.title,
p.id AS product_id,
p.title AS product_title
FROM categories AS c
JOIN products AS p ON
p.id = ( --- the PRIMARY KEY
SELECT p1.id FROM products AS p1
WHERE c.id=p1.category_id
ORDER BY p1.id LIMIT 1
)