dポイントプレゼントキャンペーン実施中!

SQLite3とPHPを使っているのですが、他のデータベースでも同じだと思うので一般的な質問になりますがよろしくお願い致します。

SELECTでデータを並び替えて抽出するにはORDER BYを使いますが、例えば2つのデータベースがあってそれぞれのカラムにある数値同士の差を降順、昇順で並び替えるにはどのような方法があるのでしょうか?

「データベースDB1のvalueカラムにある値」 - 「データベースDB2のvalueカラムにある値」 = 差分

この差分を降順、昇順で並び替えて取得したいのですが、このような場合は一度配列に格納しておいて、その配列を並び替えることになるのですか?
それともデータベースのクエリーでそのようなことが可能なのでしょうか?

もう一つお聞きしたいのは、「同じデータベース内での2つのカラムの値の差分で並び替え」したい場合もお教えください。

どうぞよろしくお願い致します。

A 回答 (1件)

スキーマ(ベンダーによってはデータベースとも呼びますね)が別なテーブルを使った差分ということでいいんですよね?


例として、サーバAにdb1, db2スキーマが存在する場合は、「スキーマ名.テーブル名.カラム名」で参照することが可能です。
また、サーバAにdb1,サーバBにdb2というように各スキーマが別サーバにあるような場合は、ベンダーごとに変わってきます。
このような場合は各ベンダーのリファレンスを参照して、それにあわせたクエリを書く(または接続方法や接続ユーザの権限を
適切に設定する)ことになります。

また、同一スキーマのテーブルであれば、「テーブル名.カラム名」で参照することが可能です。

どちらの方法でも並び替えであれば、
「order by スキーマ名.テーブル名.カラム名 - スキーマ名.テーブル名.カラム名 asc(またはdesc)」
で並び替えが出来ます。
    • good
    • 0
この回答へのお礼

ありがとうございます!
そういう風にできるのですね。
ちょっと今時間がなくてすぐには試せませんが後ほど実際にやってみようと思います。
たいへん助かりました!

お礼日時:2013/04/11 00:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す