mysql:8650
From: <m-saitoh@xxxxxxxxxx>
Date: Fri, 23 Jan 2004 12:38:36 +0900
Subject: [mysql 08650] LEFT JOIN の NULL 値のソートについて
斎藤@大和と申します。 過去のメールを検索してみたのですが、同じような内容を見つけることが 出来ませんでしたので投稿させて頂きます。 もし、同じような内容が既出でしたら番号だけでも教えて頂ければと思い ます。 [環境] OS : RedHat 9 DB : mysql 3.23.58 PG : php 4.2.2 [DB構成] CREATE TABLE main ( id smallint unsigned NOT NULL auto_increment, post_id smallint unsigned NOT NULL default 0, name varchar(255) binary NOT NULL default '', PRIMARY KEY (id) ); INSERT INTO main VALUES (1,1,'斉藤'); INSERT INTO main VALUES (2,2,'田中'); INSERT INTO main VALUES (3,0,'吉田'); CREATE TABLE post ( post_id smallint unsigned NOT NULL default 0, post_order smallint unsigned NOT NULL default 65535, post_title varchar(255) binary NOT NULL default '', PRIMARY KEY (post_id) ); INSERT INTO post VALUES (1,2,'課長'); INSERT INTO post VALUES (2,1,'部長'); [質問] 上記の構成で SELECT name, post_title FROM main LEFT JOIN post ON main.post_id=post.post_id ORDER BY post_order; のSQL文を実行した場合 name post_title ------------------- 吉田 NULL 斉藤 部長 田中 課長 と結果が帰ってくるのでが、これを name post_title ------------------- 斉藤 部長 田中 課長 吉田 NULL の順で結果を返す方法はないでしょうか。 INSERT INTO post VALUES (0,65535,''); といったようなデータを入れれば出来なくは無いのですが 別の処理で弊害が発生するため入れられません。 LEFT JOIN した際のNULLを置換するような処理 ( post_orderがNULLの時は 65535 に置換える ) ようなことが出来ると幸いなのですがいろいろ調べてみたの ですが見つけることが出来ませんでした。 ご教授よろしくお願いいたします。 -=-=-=-=-=-=-=-=-=-=-=-=-=- m-saitoh@xxxxxxxxxx
-> 8650 2004-01-23 12:38 [<m-saitoh@xxxxxxxxxx] LEFT JOIN の NULL 値のソートについて 8651 2004-01-23 12:57 ┗[<n.futami@xxxxxxxxxx] 8652 2004-01-23 13:34 ┗[<m-saitoh@xxxxxxxxxx]