Milyen SQL szerver? A nyelvi elemek és a szintaxis nagyon eltérnek.
Az 1.) kérdésre, ha jól értem, MySQL és SQLite esetében például jó lehet a GROUP_CONCAT() funkció:
SELECT GROUP_CONCAT(ADAT SEPARATOR ',') FROM lista WHERE XtablaID = 0
A 2.) kérdésre: az adatbázisszerver általában képes a komplex lekérdezés optimalizációjára, tehát igen, általában megéri szerveren belül megoldani a lekérdezések halmazát.
A 3.) kérdésre: én valószínűleg LEFT JOIN-t használnék.
Az extra kérdésre: pl. SQLite.