Hi!

Using Union and Order By gives strange behaviour in the following test-case:

drop table if exists gallery;
drop table if exists gallery_categ;
# create test tables
create table gallery (d_image_small char(100), d_image_big char(100));
create table gallery_categ (d_image char(100));
# insert test data
insert into  gallery(d_image_small, d_image_big) values('img1.jpg',
'img2.jpg');
insert into  gallery(d_image_small, d_image_big) values("img3.jpg",
"img4.jpg");
insert into  gallery(d_image_small, d_image_big) values("img6.jpg",
"img5.jpg");
insert into  gallery_categ(d_image) values("img21.jpg");
insert into  gallery_categ(d_image) values("img22.jpg");
insert into  gallery_categ(d_image) values("img23.jpg");


This query
select 'gallery' as table_name, d_image_small, d_image_big
from gallery
UNION
select 'gallery_categ' as table_name, d_image, NULL
from gallery_categ
order by table_name;

returns this:
+------------+---------------+-------------+
| table_name | d_image_small | d_image_big |
+------------+---------------+-------------+
| gallery    | img21.jpg     | NULL           |
| gallery    | img6.jpg      | img5.jpg        |
| gallery    | img3.jpg      | img4.jpg    |
| gallery    | img1.jpg      | img2.jpg    |
| gallery    | img23.jpg     | NULL        |
| gallery    | img22.jpg     | NULL        |
+------------+---------------+-------------+

Which is wrong, because the table_name field has the same value for both
tables.
But the following query works:
select 'gallery' as table_name, d_image_small, d_image_big
from gallery
union
select 'categ' as table_name, d_image, NULL
from gallery_categ
order by table_name;

+------------+---------------+-------------+
| table_name | d_image_small | d_image_big |
+------------+---------------+-------------+
| categ      | img21.jpg     | NULL        |
| categ      | img23.jpg     | NULL        |
| categ      | img22.jpg     | NULL        |
| gallery    | img6.jpg      | img5.jpg    |
| gallery    | img3.jpg      | img4.jpg    |
| gallery    | img1.jpg      | img2.jpg    |
+------------+---------------+-------------+

<mack />


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to