Andy Jefferson <[EMAIL PROTECTED]> wrote:
> 
> I'm trying to do a simple UNION in MySQL (4.0.11a on Linux). I am trying the
> following ...
> 
> If I do
> SELECT THIS.PRODUCT_ID,"net.ajsoft.WebShop.Inventory.Product" AS
> JPOXMETADATA,THIS.ID FROM PRODUCT THIS LEFT OUTER JOIN BOOK SUBCLASS0 ON
> THIS.PRODUCT_ID = SUBCLASS0.BOOK_ID WHERE SUBCLASS0.BOOK_ID IS NULL AND
> THIS.PRICE < .15E3
> i get
> +------------+--------------------------------------+-------+
> | PRODUCT_ID | JPOXMETADATA                         | ID    |
> +------------+--------------------------------------+-------+
> |          3 | net.ajsoft.WebShop.Inventory.Product | P_005 |
> +------------+--------------------------------------+-------+
> 
> If I also do
> SELECT THIS.PRODUCT_ID,"net.ajsoft.WebShop.Inventory.Products.Book" AS
> JPOXMETADATA,THIS.ID FROM PRODUCT THIS INNER JOIN BOOK SUBCLASS ON
> THIS.PRODUCT_ID= SUBCLASS.BOOK_ID WHERE THIS.PRICE < .15E3;
> i get
> +------------+--------------------------------------------+-------+
> | PRODUCT_ID | JPOXMETADATA                               | ID    |
> +------------+--------------------------------------------+-------+
> |          1 | net.ajsoft.WebShop.Inventory.Products.Book | P_003 |
> |          2 | net.ajsoft.WebShop.Inventory.Products.Book | P_004 |
> +------------+--------------------------------------------+-------+
> 
> Yet when I do
> SELECT THIS.PRODUCT_ID,"net.ajsoft.WebShop.Inventory.Product" AS
> JPOXMETADATA,THIS.ID FROM PRODUCT THIS LEFT OUTER JOIN BOOK SUBCLASS0 ON
> THIS.PRODUCT_ID = SUBCLASS0.BOOK_ID WHERE SUBCLASS0.BOOK_ID IS NULL AND
> THIS.PRICE < .15E3
> UNION
> SELECT THIS.PRODUCT_ID,"net.ajsoft.WebShop.Inventory.Products.Book" AS
> JPOXMETADATA,THIS.ID FROM PRODUCT THIS INNER JOIN BOOK SUBCLASS ON
> THIS.PRODUCT_ID= SUBCLASS.BOOK_ID WHERE THIS.PRICE < .15E3;
> i get
> +------------+--------------------------------------+-------+
> | PRODUCT_ID | JPOXMETADATA                         | ID    |
> +------------+--------------------------------------+-------+
> |          3 | net.ajsoft.WebShop.Inventory.Product | P_005 |
> |          1 | net.ajsoft.WebShop.Inventory.Product | P_003 |
> |          2 | net.ajsoft.WebShop.Inventory.Product | P_004 |
> +------------+--------------------------------------+-------+
> 
> Notice that the JPOXMETADATA column is incorrect for PRODUCT_ID=1 and 2.

JPOXMETADATA in the first SELECT is shorter than in the second SELECT. So, MySQL just 
truncate "net.ajsoft.WebShop.Inventory.Products.Book", because type of JPOXMETADATA is 
defined from the first query in the UNION. Swap the queries for correct result.



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Egor Egorov
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
       <___/   www.mysql.com




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

Reply via email to