Mam takie oto zapytanie:
SET @getKatID = ( SELECT eid FROM encyklopedia WHERE frend_id='planety' ); SET @getKatRID = ( SELECT rid FROM encyklopedia_relacje3 WHERE eid=@getKatID ); SET @getKatDEPTH = ( SELECT depth FROM encyklopedia_relacje3 WHERE eid=@getKatID ); SET @getMaster = ( SELECT rid FROM encyklopedia_relacje3 WHERE depth < @getKatDEPTH AND rid > @getKatRID LIMIT 1 ); ( SELECT r.rid AS relid, e.eid AS ident, e.frend_id AS frendly, e.title AS tytul FROM ( encyklopedia_relacje3 r LEFT JOIN encyklopedia e ON e.eid=r.eid ) WHERE r.depth < @getKatDEPTH AND r.rid < @getKatRID ORDER BY r.rid DESC LIMIT 1 ) UNION ( SELECT r.rid AS relid, e.eid AS ident, e.frend_id AS frendly, e.title AS tytul FROM ( encyklopedia_relacje3 r LEFT JOIN encyklopedia e ON e.eid=r.eid ) WHERE r.eid=@getKatID LIMIT 1 ) UNION ( SELECT r.rid AS relid, e.eid AS relid, e.frend_id AS frendly, e.title AS tytul FROM ( encyklopedia_relacje3 r LEFT JOIN encyklopedia e ON e.eid=r.eid ) WHERE r.depth > @getKatDEPTH AND r.rid > @getKatRID AND r.rid < @getMaster ) ORDER BY r.rid ASC ) ORDER BY relid ASC
Nie wiem, dlaczego, ale UNION zwraca sie pusty (zero rekordow) a kazde oddzielnie zwraca to co trzeba.