[前][次][番号順一覧][スレッド一覧]

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]