SQL質疑応答スレ 8問目
at DB
727:NAME IS NULL
09/07/29 20:18:59
一時テーブルかなー
728:725
09/07/29 22:29:26
ありがとうございます。
一文中では無理な感じでしょうか。
SELECTしか使えない環境なので、一文でなんとかしたかったのです。
PostgreSQLなのですが、DBMSはよく分かりません。
729:NAME IS NULL
09/07/29 22:32:00
SELECTしか使えない環境・・・? Accessか何かか?
730:NAME IS NULL
09/07/29 22:53:12
そこでSQLインジェクションですよ
731:NAME IS NULL
09/07/30 00:03:16
内容によってはなんかできるかもしれないけど、それだけだとちょっと難しいよね
732:NAME IS NULL
09/07/30 01:38:14
>>728
PostgreSQLは最新の8.4からWITH句をサポート
733:NAME IS NULL
09/07/30 02:25:50
初めて質問するので書き方が間違っていたらごめんなさい。
・MySQL 4.1
maintable
mid | field1 | field2
---------------
5 | 2 | 4
6 | 1 | 5
・
・
・
subtable
sid | tema
----------
1 | その1
2 | その2
3 | その3
4 | その4
field1=sid,field2=sidとして結合なり置換して
mid | tema1 | tema2
-------------------
5 | その2 | その4
6 | その1 | その5
・
・
・
としてselectすることはできるのでしょうか。どうかよろしくお願いします。
734:NAME IS NULL
09/07/30 03:10:34
>>733
SELECT T1.mid,T2.tema,T3.tema
FROM maintable AS T1
LEFT JOIN subtable AS T2 ON T1.field1=T2.sid
LEFT JOIN subtable AS T3 ON T1.field2=T3.sid;
735:nanasi
09/07/30 06:17:30 suQVAKTQ
URLリンク(kakaku.com)
都会系、受信局2km範囲。
光など不要。\
7ヵ月後2万円キャッシュバックって偉くない? ちなみにおいらは@nifty
何処かの糞みたいに高いプロバイダーが不要やねん。
この世の中に。
書類利用規約審査義務違反。あの画像さあ?
もっと改め直して?なっ?
書類不正利用規約義務違反 こっちそっちの手引きで免許証の裏に住所書いて、警察署でおしかり受けたがな。
なんで俺がそんなん喰らわなあかんねん?ヘボプロバイダーO○N。
736:NAME IS NULL
09/07/30 11:05:29 72K2TDMo
ほんと基本的な質問ですみませんが、テーブル定義書において、タイプ記述方法を調べたいのです。
CHAR,NUMERIC,DECIMALなどを書く方法もありますが、それ以外の方法(特に今回知りたいのは0,S,A,Oと書く方法)について、
教えていただけないでしょうか。
サイトの紹介でも結構です、よろしくお願いいたします。
737:NAME IS NULL
09/07/30 12:01:17
回答またはアドバイスをお願いいたします。
長文ですみません。
MySQLを使用しています。
[テーブルの項目]
・ID(主キー):数値(AUTO_INCREMENT)
・KEYWORD:文字列
・USER_ID:数値
・ENABLE_FLG:有効/無効設定フラグ (TRUE/FALSE)
[前提]
・ユーザはキーワードをデータベースにいくつでも登録できる。
・ユーザはそれぞれのキーワードに対して、有効/無効を設定できる。
・同じキーワードを別のユーザが登録することができる。
・1人のユーザが同じキーワードを2つ以上登録することはできない。
[取得したい情報]
・指定した複数のキーワードを全て登録しているユーザ(USER_ID)を知りたい。(AND検索)
(キーワードが有効になっていることが条件)
・条件を満たしている全てのUSER_IDを取得する。
検索するキーワードが'AA'と'BB'の場合は
↓のようになりますよね?
SELECT USER_ID FROM KEYWORD_TBL
WHERE KEYWORD == 'AA' AND ENABLE_FLG == 'TRUE'
AND USER_ID IN
(SELECT USER_ID FROM KEYWORD_TBL
WHERE KEYWORD == 'BB' AND ENABLE== 'TRUE');
キーワードが3つ以上だった場合(AA,BB,CC)は、
WHERE句と副問い合わせを伸ばすしかないでしょうか?
'AA','BB','CC'を登録してあるUSERを選ぶ、
という処理のスマートな書き方を教えてください。
738:NAME IS NULL
09/07/30 12:11:48
select user_id from keyword_tbl where keyword in ('AA', 'BB', 'CC')
group by user_id having count(*) = 3
とか?
実際に確認してないけれども。
739:NAME IS NULL
09/07/30 16:28:37
>>738
なるほど!その手がありましたか。
参考になりました。ありがとうございます。
740:NAME IS NULL
09/07/30 18:21:49
MySQLで、ある数値がカンマ区切りで数値の入っているフィールド
nums(text型)に含まれるかを判断するWHERE文を書きたいのですが、
どう書いたら良いでしょうか。
ANDで絞り込み条件として使いたいのですが、思いつきません。
イメージとしてはこんな感じです(128がnumsに含まれるレコード抽出)。
SELECT * FROM test WHERE 128 IN(nums);
どうか知恵をお貸しください。
741:NAME IS NULL
09/07/30 18:46:34
>>740
SELECT * FROM test WHERE nums REGEXP concat('(^|,','128','(,|$)');
かな? 自信なし。
742:NAME IS NULL
09/07/30 18:48:26
書き込んでから気づいた。直書きならわざわざconcatで連結する必要ないな。
nums REGEXP '(^|,)128(,|$)';
743:NAME IS NULL
09/07/30 20:57:26 EY3peTrf
postgreSQLで、
日付の差分を値の補正に使いたいのですが、
日付の差分を値に掛けると XXXX day みたいな日数表示になってしまいます。
この日数型を整数にするにはどうすればいいでしょうか。
744:NAME IS NULL
09/07/30 21:21:46
>>743
EXTRACT(DAY FROM INTERVAL型)
745:743
09/07/30 21:22:24
調べたらextractというのがありました。
(extract(year FROM age(日付1,日付2)) * 365) +
(extract(month FROM age(日付1,日付2)) * 31) +
(extract(year FROM age(日付1,日付2)))
これに月の日数と閏年の判定をいれれば、ゴリ押しでとれなくもないですが。。。
746:743
09/07/30 21:31:47
>>744
extract(day FROM (日付1-日付2)) で日数とれました。
ありがとう。
747:740
09/07/30 21:36:55
>>741-742
早速のレス有難うございます。
レスが遅くなり申し訳ありません。
ただいま確認したところ、期待通りに動きました。
大変助かりました。有難うございました。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5314日前に更新/207 KB
担当:undef