Kan ik twee query's combineren in één gegevensmatrix uit twee verschillende tabellen?

Ik werk aan een mediabibliotheek waarmee een gebruiker bestanden in mappen kan ordenen. Ik heb een tabel voor bestanden die het bovenliggende ID van de map waartoe het behoort. Ik heb ook een omslagentabel die ook een ouderidentiteitskaart toestaat - zodat kan een omslag in een andere omslag zijn. Het probleem wordt wanneer ik een weergave wil weergeven met de bestanden en mappen die een bovenliggende map bevat. Tot nu toe heb ik de goedkope weg naar buiten genomen en heb ik zojuist 2 afzonderlijke query's gedaan voor de mappen en vervolgens de bestanden - en daarna net achter elkaar weergegeven. Nu de lijsten echter lang zijn - ik wil ze pagineren - dus ik MOET mijn vraag BEPERKEN. Hoe kan ik twee query's combineren om één gegevensreeks van bestanden en mappen te krijgen die ik kan doorlopen?

Ik kan dit bijvoorbeeld doen:

SELECT * 
FROM `files` LEFT JOIN `folders` ON `files`.`folder_id` = `folders`.`id` 
WHERE `folders`.`id` = 198

Dat geeft me een lijst met alle bestanden in die map.

Dan dit:

SELECT * FROM `folders` WHERE `parent` = 198

Dat geeft me een lijst met alle onderliggende mappen.

Is er een manier waarop ik de twee kan combineren om me een enkele gegevensreeks te laten doorlopen?

2

1 antwoord

Probeer zoiets als dit:

SELECT id_file, name, 'file' as `type` 
FROM `files` 
LEFT JOIN `folders` ON `files`.`folder_id` = `folders`.`id` 
WHERE `folders`.`id` = 198

UNION

SELECT id_folder, name, 'folder' FROM `folders` WHERE `parent` = 198

LIMIT 0, 20
1
toegevoegd
Hij hoeft alleen de veldaliassen in de eerste query in te stellen. De andere query na union gebruikt dezelfde velden met hun aliassen.
toegevoegd de auteur Stelian Matei, de bron
Graag gedaan. Ik ben blij dat het werkt.
toegevoegd de auteur Stelian Matei, de bron
Perfect. Heel erg bedankt voor de snelle reactie.
toegevoegd de auteur Bryan Dease, de bron