Just nu i M3-nätverket
Jump to content

UNION och ORDER BY??


mr_chris

Recommended Posts

Hej på er! Har en fråga... Har två tabeller, båda med exakt samma kolumner & kolumnnam som jag vill slå i hop i en fråga. Den ena tabellen har låt säga 1000 poster och den andra har 10 poster. Den minsta tabellen kan betraktas som en extratabell vars innehåll jag inte vill lägga in i den förstnämnda.

 

Unionen funkar fint, men problemet är ORDER BY, jag vill lista den lilla tabellens innehåll först i tex id-ordning, och därefter ska den stora tabellens innehåll komma fram.

 

Nu är SQL frågan hyfsat fet, så jag har försökt förenkla ner den, men principen är den samma...Hajjar ni - och har ni tips? Tacksam...

 

 

select one.id, one.company_name, aOne.zip

from tbl_companies_1 AS one, tbl_companies_adress_1 AS aOne

where one.id = aOne.companies_id

 

UNION

 

select two.id, two.company_name, aTwo.zip

from tbl_ompanies_2 AS two, tbl_companies_adress_2 AS aTwo

where two.id = aTwo.companies_id

 

ORDER BY ???

 

Link to comment
Share on other sites

Zilver Ztream

Du måste nog sätta inte lite paranteser för att det ska fungera.. typ

 

 

(SELECT * from blabla where blabla.id = 1 order by seniority)

UNION ALL

(SELECT * from blabla2 where blabla.id > 1 order by seniority, priority)

 

Nu kan jag iofs vara ute och cykla lite då jag inte hållt på med SQL syntaxes på bra länge.

 

Hoppas det funkar.

 

MVH

Dennis

 

Link to comment
Share on other sites

Lägg till en extrakolumn i varje UNION-gren, som du sedan sorterar på:

 

select one.id, one.company_name, aOne.zip, 1 as dummy

from tbl_companies_1 AS one, tbl_companies_adress_1 AS aOne

where one.id = aOne.companies_id

UNION

select two.id, two.company_name, aTwo.zip, 0 as dummy

from tbl_ompanies_2 AS two, tbl_companies_adress_2 AS aTwo

where two.id = aTwo.companies_id

ORDER BY dummy

 

 

Ifall du absolut inte vill ha med ettan/nollan i resultatet kan du göra såhär:

select id, company_name, zip from

(

select one.id AS id, one.company_name AS company_name, aOne.zip AS zip, 1 as dummy

from tbl_companies_1 AS one, tbl_companies_adress_1 AS aOne

where one.id = aOne.companies_id

UNION

select two.id, two.company_name, aTwo.zip, 0 as dummy

from tbl_ompanies_2 AS two, tbl_companies_adress_2 AS aTwo

where two.id = aTwo.companies_id

)

ORDER BY dummy

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...