Lad os antage, at der er 2 resultater i Contents-tabellen, og 3 resultater i ModuleFrontends-tabellen. Så efter en forespørgsel er mit mål, at have ét resultat bestående af 5 recordset, sorteret efter Contents.pageTitle og ModuleFrontends.ModuleName.
Måske lidt baggrund om, hvad query'en skal bruges til, vil hjælpe på forståelsen.
Er ved at lave et CMS. I den forbindelse skal man kunne angive en startside på en template. Enten en oprettet side i CMS'et, eller et frontend module, som er installeret.
Dvs, jeg skal bruge en liste over alle CMS-sider der er oprettet + alle frontend moduler som er installeret i systemet. De ligger i to forskellige tabeller. Jeg vil gerne have hentet en liste over de her CMS-sider og frontend moduler, så jeg kan vise dem i alfabetisk rækkefølge.
Stikordet "Union" var lige dét der skulle til for, at løse mit problem. Smid et svar :-)
Løsning:
SELECT idContents AS id, pageTitle AS name, 'Contents' AS itemType FROM Contents UNION SELECT idModuleFrontends AS id, moduleFrontendName AS name, 'ModuleFrontends' AS itemType FROM ModuleFrontends ORDER BY name
Men så har jeg egentlig et lille bonusspørgsmål... Ovenstående query henter og sorterer som jeg spurgte om... Men der er en lille pukkel mere.. moduleFrontendName indeholder ikke en tekst, men navnet på en konstant... _STARTPAGE .. Som så er lig Startside hvsi man har valgt det danske sprogmodul, startpage hvis man har valgt det engelsk osv osv... Findes der en måde hvorpå, jeg kan erstatte _STARTPAGE med konstantens definerede indhold, og bruge dét til sorteringen i mit SQL-statement?
id | name |itemType 55 dfsf Contents 54 evt. logo til Canvas Contents 45 Forarmet Uran – depleted uranium. Et masseødelægge... Contents 53 spaden - daglige tekster Contents 7 _STARTPAGE ModuleFrontends 42 آمريکايی اش اعلام کرد که طرح کشورش برای Contents
Som I kan se står konstanten _STARTPAGE som 5. resultat.. men vil have det udskiftet med konstat-navnets værdi.. for hvis værdien af konstaten er abc, hører den jo ikke hjemme i recordsettet efter s... Håber I kan følge med ;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.