>>937 サブクエリはいらんと思うが。。。
select
name, coalesce(sum(uriage), 0) as uriage
from mastertb
left outer join uriagetb on mastertb.id = uriagetb.id
where name like 'AAA%'
group by mastertb.id;
940 :
937 :2005/11/21(月) 03:01:36 ID:???
>>939 さん
ありが追うございます。
ごめんなさい、説明間違えました。。。
keywordtb.keywordがxxxで始まるIDごとの売り上げがほしいのですが、
keywordtbレコード数×uriagetb レコード数分合計が出てしまい、
計算が合いません。
@matsertb Akeywordtb
id name id keyword
--------- -------------------
1 aaa001 1 xxx0001
2 aaa002 1 xxx0002
3 bbb001 1 xxx0003
4 bbb002 2 yyy0001
5 aaa003 3 xxx0001
3 xxx0002
Auriagetb
id tuki uriage
----------------
1 10 100
1 11 200
2 10 300
3 11 400
4 11 500
5 10 600
5 11 700
B結果
a.name b.uriage
------------------
aaa001 300
bbb001 400
941 :
NAME IS NULL :2005/11/21(月) 11:28:16 ID:kgOtiYdS
MySQL5,1っていつ頃出るか皆目見当つきませんか?
idc1c2c3 10013 1012 102123 ↓ idc 1001 1003 1012 1021 1022 1033 このようにテーブルを変換したいのですが、 どのようにSQLを書けばいいのでしょうか?
>>942 スペースが除去されてしまって、カラムの区切り位置が判りませぬ
>>943 すみません。
id c1 c2 c3
100 1 3
101 2
102 1 2 3
↓
id c
100 1
100 3
101 2
102 1
102 2
103 3
です。
945 :
NAME IS NULL :2005/11/21(月) 16:13:39 ID:STvFOXar
>>931 Mysqlが使えるところでも、
PerlのDBIモジュールがなぜか
入ってないところがあるからかなぁ?
phpの構築優先、Perlは2の次って感じかも。
おいらはPerlでも使ってるけど。
946 :
NAME IS NULL :2005/11/21(月) 17:14:00 ID:TgU/MA2m
キャラクターセットを調べるコマンドってありますか? utf8やlatin1などと出てくると思うのですが
>>945 PHP4はデフォでMySQLが使えるけど、PerlはCPANからインスコしないといけないからかな。
PHP5ではSQLiteに変更になっちゃったけど。
948 :
NAME IS NULL :2005/11/21(月) 21:59:13 ID:STvFOXar
>>947 なるほど、PHPは最初から使えたのね。
949 :
940 :2005/11/22(火) 00:24:22 ID:???
自己解決。 上のほうで出ていたTemporaryTableが意外と難しくなかったため、そちらで回避しました。 どうもありがとうございました。
950 :
930 :2005/11/22(火) 01:28:00 ID:???
>>935 ほんとだ。
Pearからquery("SHOW TABLE STATUS LIKE 'テーブル名'")
でヘッダが取得できた。こりゃ便利だ
>>950 SHOW に限らず結果セットを返してくる SQL 文は
全部 SELECT と同じように使えるよ。
すみません、英語のマニュアル等をみたり、ググってみても ちょっと見つからなかったので質問させていただきます。 当方phpMyAdmin 2.7.0-beta1+MySQL 5.0.15(win版)を WinXpProで稼動しているのですが、phpMyAdminの画面で ビューならびに、トリガー、ストアドプロシージャの作成は SQLコマンド画面から直接コマンドを送る以外に、GUI操作 で簡単に作成できるような機能はまだ実装されていないの でしょうか? また同様に外部キーの設定もSQLコマンドを直接送るしか ないのでしょうか?
>>944 ビューってより、テーブルを作り替えるってことでしょうか?
>>944 新しくテーブルを作ればよいの?
create table t2 select id,c1 from t where c1 is not null
union select id,c2 from t where c2 is not null
union select id,c3 from t where c3 is not null;
956 :
940 :2005/11/23(水) 01:14:35 ID:YAMI2oR6
>>953 苦肉の策ですが。
create temporary table tmptb
(id varchar(3) ,
cvarchar(1) ,
PRIMARY KEY (id , c )
);
insert into tmptb select id as id , c1 as c from tb1 where c1 != "" ;
insert into tmptb select id as id , c2 as c from tb1 where c2 != "";
insert into tmptb select id as id , c3 as c from tb1 where c3 != "";
select * from tmptb order by id , c;
957 :
940 :2005/11/23(水) 01:18:15 ID:???
>>954-956 テンポラリーなテーブルを作らずに、任意のcを抽出したいのですが、
素直に最初のテーブルの状態で
c1=1 or C2=1 or ....
とやるのがいいのでしょうか?
それともテンポラリーなテーブル作った方がいいでしょうか?
>>958 それで用が足りるならそれでいいんでは?
960 :
NAME IS NULL :2005/11/23(水) 17:27:11 ID:zX9bGfyz
PHP使ってDBの負荷を観測しようかと考えてるのですが… Questions,7967029 Uptime,53941 QuestionsをUptimeで割れば混雑具合が分かるのでしょうか?
>>959 いや、元々はc1からc5まであって、
抽出するときの条件が複数になるから、
二つめの形になったものをSELCTしたほうが簡単に書けるかなと思って。
962 :
NAME IS NULL :2005/11/24(木) 02:52:48 ID:Y4TFTONw
txtファイルを再度インポートした際に上書き?できるようにしたいのですが どういった方法がありますか? name ----- a← b← のデータに上書きするような感じです c← ↓に追加されるのでなく
>>962 nameをuniqueにして、insertの代わりにreplaceを使う
SELECT id,fa,mmc FROM tb WHERE id=1 UNION SELECT id,fa,mmc FROM tbORDER BY mmc LIMIT 100, 30; 100は可変 id=1と、100番目から30個取得したい場合、2回SELECTするしかないのでしょうか? また、上の場合id=1の行がかならず先頭に来ることは保証されていますか?
phpとmysqldが別のサーバにインストールされている場合 php mysql間の通信は暗号化されているのでしょうか。
966 :
NAME IS NULL :2005/11/25(金) 02:07:47 ID:ECnAQf/t
| 何について調べますか? | ┌────────────┐ | | お前を消す方法 | | | | | └────────────┘ | [ オプション(O) ] [ 検索(S) ] | `──────────┐ ┌─── , '´l, ..| ./ , -─-'- 、i_ |/ __, '´ ヽ、 ',ー-- ● ヽ、 `"'ゝ、_ ', 〈`'ー;==ヽ、〈ー- 、 ! `ー´ ヽi`ヽ iノ ! / r'´、ヽ `´ヽノ , '´l, , -─-'- 、i_ , '´○ _ ○ ヽ、 i / | ヽ、 ゝ ├-┤ ', 〈`'ー;==ヽ、〈ー- 、 ! `ー´ ヽi`ヽ iノ ! / r'´、ヽ `´ヽノ
967 :
NAME IS NULL :2005/11/25(金) 03:25:23 ID:pnUQMbxe
Acsessでlinux上のmysqlに接続ってできますか?
968 :
NAME IS NULL :2005/11/25(金) 04:38:54 ID:pnUQMbxe
できるみたいでした。スレ汚しすいませんでした
>>965 されてない。必要なら自分でSSL噛ますようにしないと駄目。
その手のドキュメントが存在した気がする。
970 :
NAME IS NULL :2005/11/25(金) 10:00:43 ID:JqnBQ7af
以下のようなSQL文で、 日付の比較に時間がかかっています。 select * from aaa where start <= '2005-11-25' and end >= '2005-11-25' チューニングする方法はあるでしょうか?
インデックス張るとか
>>970 '2005-11-25' をキャストしたった方が速い様な気も
するけど、MySQLが最適化してる気もする。
あと出てくる2つの日付はいつも同じ?
なら ... and end>=start のが速そうですね
end >= start と end >= '2005-11-25' は全然意味が違うと思うのだが。
諸兄には余りに初歩的なのかも知れませんが一つ教えて。現在Win版で勉強中なんですけど、 Linuxにインストールしてwinのクライアントから日本語データを入れる場合って日本語の設定ってどうするの?
mysql のアップグレードに失敗してどういう訳か再インストールもままならず、 mysqlhotcopy なども利用できないのでしょうがなくとりあえず データベース用のディレクトリをそのままバックアップして OS の再インストールをしたいと考えてます。 使っていたバージョンは MySQL 3 でして、 OS 再インストール時には ver 4 以降を利用したいと思っているのですが この場合データベース用のディレクトリをそのままコピー&ペーストでテーブルの完全な引継ぎは可能でしょうか? どなたか教えてください。
サブクエリーを使わずに「集計してから結合」ってできます? select 社員マスタ.入社年度, 社員マスタ.氏名, a.時数計, a.売上計 from (SELECT 社員ID, Sum(時数) AS 時数計, Sum(売上額) AS 売上計 FROM 売上データ WHERE 日付 Between '3/1/2001' And '3/31/2001' group by 社員ID) as a left join 社員マスタ on 社員マスタ.社員ID = a.社員ID order by 社員マスタ. 入社年度 こーいうことがしたいんですけど、ウチの鯖のMySQLは4.0.26なんですよね・・・・ 結合してから集計だとどうやっても集計が何重も無駄に重なって正しくカウントされない(´д`)
977 :
NAME IS NULL :2005/11/26(土) 06:58:58 ID:2dGwNsu1
xamppでphpMyAdminとMySQL5.0をインストールしました。 phpMyAdminのキャラクタセットをeuc-jpにしたいのですが、 $cfg['DefaultLang'] = 'ja-euc'; $cfg['DefaultCharset'] = 'euc-jp'; と変更しても、選択メニューにutf-8しか出てきません。 これは「4.1以上はutf-8しか想定してません」という意味でしょうか? いっそutf-8で使おうかとも思うのですが問題はないものでしょうか?
>>977 SET NAMES ? などでクライアント側エンコーディングを指定すると
サーバー側エンコーディングを使って SELECT 時に
自動変換されるので特に問題ない
979 :
NAME IS NULL :2005/11/26(土) 13:23:50 ID:igepm8sw
0で始まる9桁の数字をchar型で入れようとしても 最初の0が抜けて入ります。 解決方法教えてください。エロいひと。
>>979 INSERTする時、' で囲っていないとか。
INSERT INTO t VALUES(003) → 3 が書き込まれる
INSERT INTO t VALUES('003') → 003 が書き込まれる
981 :
NAME IS NULL :2005/11/26(土) 14:12:42 ID:igepm8sw
>>980 それで解決しました!
どうもありがとうございました。
>>979 000000001が00000001になるのかと思ったよ。
mysql4.1.13でtextでフィールド作るとblobになっちゃうのはなぜ?
987 :
NAME IS NULL :2005/11/27(日) 17:34:33 ID:qkh6/+hT
MySQL 5.0.16-nt(Windows版)で、VARCHARに英数字だと 正常に挿入できるのに日本語をINSERTしようとすると、 ERROR 1406 (22001): Data too long for column 'str' at row 1 と言うエラーが出てINSERTに失敗するのですが、解決策は無いのでしょうか? 全部TINYBLOBとかで解決するのはあまりにも悔しい…。 ちなみに、「show variables like 'char%'」の結果は character_sets_dirを除いて全てutf8です。
988 :
NAME IS NULL :
2005/11/27(日) 20:53:53 ID:0a7tYg2U