Witam,
Mam takie oto zapytanie:
  1. SET @getKatID = ( SELECT eid FROM encyklopedia WHERE frend_id='planety' );
  2. SET @getKatRID = ( SELECT rid FROM encyklopedia_relacje3 WHERE eid=@getKatID );
  3. SET @getKatDEPTH = ( SELECT depth FROM encyklopedia_relacje3 WHERE eid=@getKatID );
  4. SET @getMaster = ( SELECT rid FROM encyklopedia_relacje3 WHERE depth < @getKatDEPTH AND rid > @getKatRID LIMIT 1 );
  5.  
  6. (
  7. SELECT r.rid AS relid, e.eid AS ident, e.frend_id AS frendly, e.title AS tytul
  8. FROM ( encyklopedia_relacje3 r
  9. LEFT JOIN encyklopedia e ON e.eid=r.eid )
  10. WHERE r.depth < @getKatDEPTH AND r.rid < @getKatRID
  11. ORDER BY r.rid DESC LIMIT 1
  12. )
  13. UNION
  14. (
  15. SELECT r.rid AS relid, e.eid AS ident, e.frend_id AS frendly, e.title AS tytul
  16. FROM ( encyklopedia_relacje3 r
  17. LEFT JOIN encyklopedia e ON e.eid=r.eid )
  18. WHERE r.eid=@getKatID
  19. LIMIT 1
  20. )
  21. UNION
  22. (
  23. SELECT r.rid AS relid, e.eid AS relid, e.frend_id AS frendly, e.title AS tytul
  24. FROM ( encyklopedia_relacje3 r
  25. LEFT JOIN encyklopedia e ON e.eid=r.eid )
  26. WHERE r.depth > @getKatDEPTH AND r.rid > @getKatRID AND r.rid < @getMaster )
  27. ORDER BY r.rid ASC )
  28. ORDER BY relid ASC


Nie wiem, dlaczego, ale UNION zwraca sie pusty (zero rekordow) a kazde oddzielnie zwraca to co trzeba.