人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://codezine.jp/article/detail/460?p=1

下記コードの「P1.name > P2.name;」の「>」の意味がよくわかりません。
不等号は大なり小なりで数値の比較をするのはわかります。

--組み合わせを得るSQL
SELECT P1.name AS name_1, P2.name AS name_2
FROM Products P1,
Products P2
WHERE P1.name > P2.name;

文字コードの順にソートして自分より前に来るという事が書いてありますが、イメージがつかめません。イメージが掴めるようにお教え頂けないでしょうか。


●質問者: popattack
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● naknt
●0ポイント

どちらか大きいという指定をすることによって出力結果を一意にしようということですね。


popattackさんのコメント
ご回答ありがとうございます。

2 ● うぃんど
●100ポイント ベストアンサー

直積の結果は下記ですね

name_1name_2
りんごりんご
りんごみかん
りんごバナナ
みかんりんご
みかんみかん
みかんバナナ
バナナりんご
バナナみかん
バナナバナナ


文字コードは面倒なのでカンタンな数値に置き換えます
りんご→1
みかん→2
バナナ→3

name_1name_2
11
12
13
21
22
23
31
32
33


> の条件を加えると下記のように判断されます

name_1name_2条件に合致して出力される場合は◎されない場合は×
11×
12
13
21×
22×
23
31×
32×
33×


さて、
文字コードで考えると、件のページの例題は間違っています
「りんご、ミカン、バナナ」であれば問題なかったのですが、
そこまで説明することは考えてなかったのだと思いますね


popattackさんのコメント
ご回答ありがとうございます。1点お教え頂けないでしょうか。 WHERE P1.name > P2.name なので、2行目の「1 > 2」はFalseになるのではないでしょうか? 本を読んだら、 年齢 > 20 年齢が30の時はTrueになると書いてあります。

うぃんどさんのコメント
> の条件を加えると下記のように判断されます ごめんなさい 「>の条件」と説明しつつ「<の条件」の表を作っていました・・・ 改めて「>の条件」で表を作ってみました |name_1|name_2|条件に合致して出力される場合は◎されない場合は×| |1|1|×| |1|2|×| |1|3|×| |2|1|◎| |2|2|×| |2|3|×| |3|1|◎| |3|2|◎| |3|3|×|

popattackさんのコメント
なるほど!よく理解できました。物凄くわかりやすかったです。感謝です!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ