X



トップページDB@2ch掲示板
1002コメント319KB
SQL質疑応答スレ 18問目
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2018/01/04(木) 22:12:22.14ID:???
このスレは
「こういうことをやりたいんだけどSQLでどう書くの?」
「こういうSQLを書いたんだけどうまく動きません><」
などの質問を受け付けるスレです。

SQLという言語はISOによって標準化されていますが
この標準を100%実装したDBMSは存在せず、
また、DBMSによっては標準でない独自の構文が
追加されていることもあります。

質問するときはDBMS名を必ず付記してください。

【質問テンプレ】
・DBMS名とバージョン
・テーブルデータ
・欲しい結果
・説明

前スレ:
SQL質疑応答スレ 17問目
https://mevius.5ch.net/test/read.cgi/db/1468157341/
0153NAME IS NULL
垢版 |
2018/03/05(月) 20:09:33.69ID:???
>>151
MySQLの問題でもないから
ホスティング会社に問い合わせてね
0155NAME IS NULL
垢版 |
2018/03/06(火) 05:00:29.05ID:???
>>152
お前、何様?
勝手に仕切んなボケ
015760改め神 ◆YDp73vGOso3d
垢版 |
2018/03/06(火) 20:00:31.31ID:???
うっせえSE如きが意見してんじゃねーよ
はやく答えろやゴミ
ってみんな思ってるからな?wwwそういうふうに思いながら仕事しろよ?wwwwww
0158NAME IS NULL
垢版 |
2018/03/07(水) 20:56:18.81ID:7USA4bpQ
そろそろ飽きてきたから俺が答えちゃおうかなwいいのか?お前ら?w
0160NAME IS NULL
垢版 |
2018/03/08(木) 07:15:45.81ID:???
アホコテはngにしてるからどうぞお好きに
0162NAME IS NULL
垢版 |
2018/03/08(木) 21:47:16.61ID:/+R2cp3T
>>160
ウェレクトは黙っとけまた恥かくぞ
0164NAME IS NULL
垢版 |
2018/03/09(金) 16:53:42.16ID:???
・SQLインジェクション対策はシングルクォートを空白に置換すればOK
・テーブルで年月のみを入れる項目は文字列型で定義
この辺を論破できないので悲しい...

シングルクォートなんてデータ入れねーよ m9(^Д^)プギャー
年月のみならサイズを小さくできるよといわれる
0165NAME IS NULL
垢版 |
2018/03/09(金) 18:01:49.05ID:???
いろいろヤバイなそれ
0167NAME IS NULL
垢版 |
2018/03/10(土) 12:48:06.89ID:???
年月を文字型にすると
・比較相手によってはキャストが必要
・範囲チェックが働かない
・容量が増える

逆に年月を文字列型にするメリットって何かあるの?
あと速度的なとこも気になるね
0168NAME IS NULL
垢版 |
2018/03/14(水) 12:59:09.36ID:E2z4/zZm
>>164
いまどき数バイト削るためにコンピュータの数値型を使うのは時代錯誤。しかもリレーショナルデータベースでは文字として出力するのが優先だから文字表現でデータを格納するのが基本。
0169NAME IS NULL
垢版 |
2018/03/14(水) 15:47:30.57ID:???
釣り針がデカすぎ
0170NAME IS NULL
垢版 |
2018/03/14(水) 18:50:24.54ID:???
え、え〜〜!?
これは救いようもなくヤバイ
0171NAME IS NULL
垢版 |
2018/03/14(水) 19:40:23.59ID:9cJyYZaB
疑心暗鬼すぎる>>169かわゆすw
0174NAME IS NULL
垢版 |
2018/03/14(水) 20:24:27.64ID:9cJyYZaB
多くのゴミの中でも本当にゴミと言えるのは>>172だけやでw
0175NAME IS NULL
垢版 |
2018/03/15(木) 00:28:50.67ID:08yLtO65
>>167
int型の項目値を文字列に変換する方がはるかに負荷が大きい。
017660改め神 ◆YDp73vGOso3d
垢版 |
2018/03/15(木) 00:39:41.41ID:???
正直なそんな低レベルなDB設計してる奴がいるとこで働いてるお前がかわいそうだわ
んでそんな話どうでもいいから早く質問答えろな?
0177NAME IS NULL
垢版 |
2018/03/15(木) 00:52:07.97ID:???
年月は数字項目にしといたほうがトラブルが少ない。整合性チェックにもなる
文字列にして文字が入ってたりすると日付形式に変換する時エラーになる
0178NAME IS NULL
垢版 |
2018/03/15(木) 00:54:30.05ID:08yLtO65
>>167
キャストが必要というのもコンピュータの数値型を使っていても、最終的には文字列に変換する。

年月の同士の計算が膨大にあるのであれば理解できなくないが、日付項目同士の比較は日付型で行う。

コンピータの数値表現で扱ってしまうと、まず日付型に変換し、実在しない年月や、1ヶ月前、1ヶ月後、月末日等の特定に2段階のキャストが必要になる。

現実には存在しない年月を生み出してしまうリスクまでとる必要がない。

何度も言うが年月の単純計算などほぼないうえに、文字列に大小判定は気にせず、コンピータの数値ばかりこだわるのはリレーショナルデータベースを理解していないどころか、コンピータを理解していない。
0179NAME IS NULL
垢版 |
2018/03/15(木) 01:04:17.75ID:???
いつもの人ですねー
お薬出しときますねー
0182NAME IS NULL
垢版 |
2018/03/15(木) 17:36:45.04ID:???
一人で勝手にint型や数値型を持ちだしてそれを的外れな長文で否定w
文脈を理解してないどころか、一般常識を理解していない。
0183NAME IS NULL
垢版 |
2018/03/15(木) 20:48:02.74ID:S1KKHbYv
バカ必死やねw
0184NAME IS NULL
垢版 |
2018/03/17(土) 13:49:54.26ID:tBZQagyi
  ★★★根税制による格差解消は、赤犬を根絶しユダヤ支配を永遠に終わらせる為の決め手である。★★★

▲  この掲示板(万有サロン)に優秀な書き込みをして、総▲額148万円の賞金をゲットしよう!(*^▲^)v
  http://jbbs.livedoor.jp/▲study/3729/ →リンクが不良なら、検索窓に入れる!
0185NAME IS NULL
垢版 |
2018/03/18(日) 00:49:00.65ID:???
>>175
>>178
いつもCPU100%にしちゃうから勉強になります!!
0186NAME IS NULL
垢版 |
2018/03/18(日) 11:46:44.87ID:a+ovhjNW
それはSQLの書き方がおかしいんだろ
0187NAME IS NULL
垢版 |
2018/03/18(日) 15:36:28.47ID:???
ホントに文脈も一般常識も理解してないのな
018860改め神 ◆YDp73vGOso3d
垢版 |
2018/03/18(日) 23:26:43.98ID:???
統計情報も取らないアホ集団で仕事してるのはわかったから
はやく俺の質問答えてや^ ^
0189NAME IS NULL
垢版 |
2018/03/20(火) 22:22:54.01ID:Rscf1saE
>>185
CPUは使うものですよ。
0190NAME IS NULL
垢版 |
2018/03/20(火) 22:23:50.07ID:Rscf1saE
>>188
統計情報はユーザーが取るものではないぞw
0191NAME IS NULL
垢版 |
2018/03/24(土) 13:21:59.28ID:GEutIhi9
訳のわからんツッコミにさすがの神もタジタジの様子w
0192NAME IS NULL
垢版 |
2018/03/25(日) 01:04:30.70ID:yjy1y48X
MySQL (InnoDB) で ALTER TABLE をする際の振る舞いとしてテーブル単位のロックではなくインスタンス全体をロックしているような挙動を示しています
innodb_file_per_table を疑ったが ON だったのですが何が問題なんでしょうか
0194NAME IS NULL
垢版 |
2018/03/25(日) 17:11:51.29ID:???
>>192
追記:
原因の切り分けが非常に難しく、 AWS RDS を利用しているからこうなっているのか、
それともこの挙動が発生したインスタンスに大量のデータベース・テーブル(150万テーブル以上)が存在していることが問題なのか、
他に見落としている条件がないかを調査している。
0195NAME IS NULL
垢版 |
2018/03/26(月) 12:26:18.51ID:E8QJAuxE
テーブル数150万てwどうしてそうなったw
019660改め神 ◆YDp73vGOso3d
垢版 |
2018/03/26(月) 18:43:16.56ID:???
>>194
MySQLの問題だからねそれ。
あと今質問打ち切ってるよ?

>>195
150万って別に普通だと思うが?アホ?
019760改め神 ◆YDp73vGOso3d
垢版 |
2018/03/26(月) 18:44:41.84ID:???
ああごめんね。テーブル数150万はないわ。
どんな教育受けてきたん?
はいこの話終わり早く答えて
019960改め神 ◆YDp73vGOso3d
垢版 |
2018/03/26(月) 22:38:34.91ID:???
>>198
そうだね教えを請うたことないわ
いっつも享受する側だわ
スキーマテーブルレコードカラムの違いがわかんないアホがこのスレ使ってんなや!
0200NAME IS NULL
垢版 |
2018/03/27(火) 07:18:12.07ID:???
まだ居座ってるんだ
このかわいそうな人
0201NAME IS NULL
垢版 |
2018/03/27(火) 07:21:01.46ID:Sf3AYZp2
間違いを指摘された途端にブチ切れ始めた
0202NAME IS NULL
垢版 |
2018/03/27(火) 12:28:22.82ID:5YfwV0Ug
「指摘したって言う奴の指摘は大体間違っている」の法則
0205NAME IS NULL
垢版 |
2018/03/27(火) 19:00:54.47ID:???
SQLの事だと思い込んでいる事も意味不明
0209NAME IS NULL
垢版 |
2018/03/28(水) 22:42:12.95ID:???
>>207
書き間違えまで揚げ足取るってやべえなここの民度
0211NAME IS NULL
垢版 |
2018/03/28(水) 23:27:20.25ID:???
普通そんな所書き間違えるなんてしないよ
0213NAME IS NULL
垢版 |
2018/03/29(木) 01:27:17.73ID:???
読み間違えた挙句にアホ呼ばわりする人間が民度を語るなよ。みっともない奴だな。
0214◆YDp73vGOso3d
垢版 |
2018/03/29(木) 01:35:47.13ID:???
>>213
君名前欄も読めないメクラさんかな?
民度どうこうなんて言ってないんだけど?
文体から伝わってくるんだけど加齢臭口臭やばいでしょあなた?
0215NAME IS NULL
垢版 |
2018/03/29(木) 03:34:49.63ID:???
>>212
あら「普通」の概念が破綻してる方がまたいらっしゃった
0216NAME IS NULL
垢版 |
2018/03/29(木) 12:25:25.63ID:siRTS5gv
あら「普通」の概念が堅固なバカがまたいらっしゃった
0219NAME IS NULL
垢版 |
2018/04/03(火) 20:44:20.13ID:wbI218I7
select A1,A2 from tableA
select B1 from tableB

これをそのまま流すと結果は2行になりますが、
これをA1,A2,B1と1行でとる方法はないでしょうか
0220NAME IS NULL
垢版 |
2018/04/03(火) 21:07:32.04ID:???
書き忘れましたが、どちらも1行しか返さないSQLです
0221NAME IS NULL
垢版 |
2018/04/03(火) 21:10:17.03ID:???
>>219
それぞれの実行結果が1行しかないなら

select tableA.A1, tableA.A2, tableB.B1 from tableA, tableB;
0222NAME IS NULL
垢版 |
2018/04/03(火) 22:07:12.44ID:???
>>221
なるほど、ありがとうございます
0223NAME IS NULL
垢版 |
2018/04/04(水) 08:04:54.29ID:2HlnMqVc
MysqlがすぐおちるのですがMariaDBにすれば改善されるのでしょうか?

よく出るエラーメッセージはこんなやつです。
mysqli_set_charset(): Error executing query in DBのURL

MariaDBはMysqlに比べてどのぐらい優れているのかもわからないので教えていただければ幸いです。
0224NAME IS NULL
垢版 |
2018/04/04(水) 13:11:13.69ID:???
>>223
おそらくデータベースに設定している文字セットで不整合があるんだろうと思いますが
MySQLの設定方法に関する質問の場合は、ここで聞くよりも、
MySQL 総合 Part26
https://mevius.5ch.net/test/read.cgi/db/1499949595/
で聞いた方が良いかと思います。

MariaDBに関するスレもあります。覗いてみると良いかもしれません。
https://mevius.5ch.net/test/read.cgi/db/1360677476/
0225NAME IS NULL
垢版 |
2018/04/04(水) 16:32:49.81ID:+pp14tKO
誤爆かもな
0226NAME IS NULL
垢版 |
2018/04/04(水) 21:47:48.32ID:???
with句で取得した数列を別のテーブルでその数列と一致するレコードを取得したいんだけどどうすればいいでしょう?
withで別で取得したリスト名Aとし取得結果がBだとすると
select ※ from X
where X.C IN (SELECT B FROM A)
で取得しようとしたんだが上手くいかずいろいろとぐぐってみたけどわからなかったです・・・
0227NAME IS NULL
垢版 |
2018/04/04(水) 21:48:51.99ID:tDmvnrOB
DB名も書けないとか
0228NAME IS NULL
垢版 |
2018/04/04(水) 22:51:56.44ID:???
withで別で取得したってのが意味わからん
その部分を含めてどうやろうとしたのか書けば答えようもあるが
0229NAME IS NULL
垢版 |
2018/04/04(水) 23:31:43.42ID:???
すみません。書き方が悪かったです。
使用しているのはoracleです。
with A AS (SELECT X FROM Z
GROUP BY X)
SELECT COUNT(※) FROM B
WHERE B.C IN(SELECT X FROM A)
のような文を書いてエラーとなりました。
イメージ的にはZテーブル上のXの数列についてBテーブルに何件存在するかを確認したいです。
023060改め神 ◆YDp73vGOso3d
垢版 |
2018/04/04(水) 23:59:17.52ID:???
参考書でも開けばそんくらいわかんだろゴミ
早くお前ら答えろや
スレチの質問には誘導して俺の質問には答えないって根性捻れまくりだろお前ら
0231NAME IS NULL
垢版 |
2018/04/05(木) 01:39:19.17ID:l3AE4+ue
「Xの数列」という説明が他人には理解できない。

Xがひとつの列だとするとなぜグループ化なのかわからない。

さらに再帰クエリにして、別のSELECT文のINリストのSELECT文にしているのも意図がくみにくい。

かなり単純なことを聞いていると予想はできるが、なぜこんなに難しく考えているのか?
0232NAME IS NULL
垢版 |
2018/04/05(木) 06:25:28.48ID:???
本当に>>229の通りに書いているならcount(※)がcount(*)の間違いだが
それ以外に致命的な間違いは見当たらない
まあこう書いても同じ意味にはなる
select count(*) from B inner join Z on B.C = Z.X;
0234NAME IS NULL
垢版 |
2018/04/05(木) 19:22:56.90ID:l3AE4+ue
再帰のないWITHを再帰クエリと呼ぶなということか。

ただOracleは再帰があってもなくてもただWITHと書いて、再帰のないWITHと言ったりするからそう書いた。

標準SQLではWITH RECURSIVEと書かないといけないが、Oracleはたしかこの構文がない気がする。
0235NAME IS NULL
垢版 |
2018/04/05(木) 19:24:12.57ID:l3AE4+ue
他人のミスに厳しいならそう自己紹介してくれ。
0236NAME IS NULL
垢版 |
2018/04/05(木) 20:02:25.68ID:???
ではまずご自身からどうぞ
0238NAME IS NULL
垢版 |
2018/04/05(木) 21:29:58.31ID:???
>>232
B.CかZ.Xの少なくともどちらかがユニークでないと同じ意味にはならん
0239NAME IS NULL
垢版 |
2018/04/06(金) 00:33:07.86ID:GwnuWxH/
このスレはSQL入門スレなのかSQLオタクスレなのか?

よくわからない質問に、エスパー回答をするというIT技術者の間ではあまりないやりとりが多い。
0240◆YDp73vGOso3d
垢版 |
2018/04/06(金) 01:28:52.77ID:???
テンプレ見ろゴミ
ここは初心者用スレだよ
なのに俺の質問は基礎的すぎるとかいう謎老人のおかげで誰も答えんのや
まじでゴミSEは右ならえの自我すら持たない穢多非人よ
0241NAME IS NULL
垢版 |
2018/04/06(金) 08:24:33.64ID:???
いつまで粘着してんだ、このキチは
0242NAME IS NULL
垢版 |
2018/04/06(金) 12:19:44.04ID:1nt8ANDW
>>239
IT技術者の間ではよくわからない質問によくわからない回答をして
お互い納得するのがデフォルトスタンダードですものねw
0243NAME IS NULL
垢版 |
2018/04/06(金) 12:43:29.95ID:???
ここはわざと言い間違えるスレか?
0244NAME IS NULL
垢版 |
2018/04/06(金) 12:58:57.72ID:GwnuWxH/
まず質問者が無礼。回答者がとりあえず想像で回答。これがこのスレが機能していない理由。
0245NAME IS NULL
垢版 |
2018/04/06(金) 13:59:04.00ID:GwnuWxH/
>>240
初心者向けであれば、SQLを回答するのではなく、何をしようとしているのを確認するのが先です。できればいい論をデータベース板で確認するのはおかしいので、プログラム板やプログラマ板で質問すべきです。
0246◆YDp73vGOso3d
垢版 |
2018/04/06(金) 20:23:48.23ID:???
>>245
わかったわかったお前の意見とかどうでもいいわ
文体見るだけで中年のごみおっさんってわかるわやばいよ君?
0247NAME IS NULL
垢版 |
2018/04/06(金) 20:45:46.08ID:???
匿名の掲示板で誰でも書き込めるんだから
気に入らなければスルーすれば良いだけ
質問者が無礼って、お前に害悪を加えてきたわけじゃあるまいし
0248NAME IS NULL
垢版 |
2018/04/06(金) 21:22:42.32ID:+EV0F8Wd
助けてください。
ACCESSのDBなんですが、
tblAは、[id][なまえ][電話番号][性別][入会日]というフィールド構成のマスター名簿
tblBは、[id][入金日][入金額]というフィールド構成です。

このテーブルを元に、ACCESSやEXCELのVBA上で、

[id] [なまえ] idごとの[入金額]の合計 WHERE 昨日=<[入金日] <= 明日

というレコードセットを取得したいです。
tblBの集計に、tblAからもってきたなまえフィールドをくっつけたい、という感じです。
INNER JOINとか、そういうのを駆使して、なんとかひとつのSQL文を作りたいのですが、
うまくいきません。
どなたか、SQL文そのものをご教示ください。
お願いします。
0249NAME IS NULL
垢版 |
2018/04/06(金) 21:55:43.69ID:???
>>248
このままだとよくわからん
「誰が」入金したという情報はどこで管理しているの?
0250NAME IS NULL
垢版 |
2018/04/06(金) 22:00:07.59ID:+EV0F8Wd
>>249
すみません。idというのは、メンバーidのことです。レコードidではありません。
わかりづらくてすみません。

メンバー(マスターで、idから名前がわかる)による入金の記録がBテーブルです。
それぞれのメンバーが、合計でいくら入金したのか、を集計したいのですが、
Bテーブルにはidしかなく、集計表には名前も欲しいので、Aテーブルから持ってきたいのです。
0251◆YDp73vGOso3d
垢版 |
2018/04/06(金) 22:08:41.64ID:???
>>250
君質問する以前の問題だよ?
あと今質問受け付けてないからばいばい
0252NAME IS NULL
垢版 |
2018/04/06(金) 22:09:44.34ID:???
>>250
えーと
同じ日に2件以上の入金はないということ?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況