mysql - Order the columns returned by a query -


i have query

select distinct re1.name name1,re2.name name2  rating r1,rating r2,reviewer re1,reviewer re2 r1.rid > r2.rid    , r1.mid  = r2.mid    , re1.rid = r1.rid    , re2.rid = r2.rid; 

the output is

name1     name2  chris     brittany ashley    chris james     elizabeth 

i want return table in such way rows in alphabetical order, i.e. output should be:

name1     name2  brittany   chris ashley     chris elizabeth  james 

you can use least() , greatest() functions:

select distinct least(re1.name, re2.name) name1, greatest(re1.name, re2.name) name2  rating r1,rating r2,reviewer re1,reviewer re2 r1.rid > r2.rid    , r1.mid  = r2.mid    , re1.rid = r1.rid    , re2.rid = r2.rid; 

you should learn proper join syntax:

select distinct least(re1.name, re2.name) name1, greatest(re1.name, re2.name) name2  rating r1 join      rating r2      on r1.rid > r2.rid , r1.mid  = r2.mid ,      reviewer re1      on re1.rid = r1.rid join      reviewer re2      on re2.rid = r2.rid  ; 

edit:

if database doesn't support these 2 functions, can same things case statement:

select distinct (case when re1.name < re2.name re1.name else re2.name end) name1,        (case when re1.name < re2.name re2.name else re1.name end) name2 . . .  

as issue nulls. original data has names populated , joins inner joins, null did not seem issue.


Comments