板検索:
SQL初心者質問スレ (1992)
まとめビュー
重複読み込みスレ:このスレは、2重読み込みでレスが重複している可能性があります。修復する場合はこちらをクリックしてください。
1
NAME IS NULL[]   投稿日:2016/05/12 05:29:07  ID:HmbS4CfD.net(2)
SQL初心者用の質問スレッドです。


2
NAME IS NULL[sage]   投稿日:2016/05/14 12:04:11  ID:???.net(1523)
2get
teradataの識者いる?

3
NAME IS NULL[sage]   投稿日:2016/05/26 15:09:21  ID:???.net(1523)
スレなかったっけ、、、と探したら無いな、、落ちたんかな

4
NAME IS NULL[]   投稿日:2016/06/18 19:48:26  ID:wQWiAJ0q.net(2)
外部の利用者が自由にテーブルを追加できるシステムを sqlite で検討しています。
テーブルが重複しないように利用者番号をテーブル名のプレフィックスにつけようと思います。

もしも、同じようなシーンでの一般的な方法などありましたら教えてください。
よろしくお願いします。
コメント2件

5
NAME IS NULL[sage]   投稿日:2016/06/18 21:48:46  ID:???.net(1523)
>4
利用者ごとに
dbはどう?
コメント2件

6
NAME IS NULL[sage]   投稿日:2016/06/18 22:19:58  ID:???.net(1523)
>外部の利用者が自由にテーブルを追加できるシステム
が一般的な使い方とは思えないのに一般的な方法とか...

7
NAME IS NULL[sage]   投稿日:2016/06/19 04:42:21  ID:???.net(1523)
>dbはどう?
この意味がよくわかりません。すみません。

利用者ごとにというのは、少し誤りでした。
正確にはプラグインとして db を操作するモジュールを追加できる仕組みです。
そのモジュールから db に対して create table もできるようにしたいです。
そのときにテーブルの名前の重複を避けたいので、質問させていただきました。

8
NAME IS NULL[sage]   投稿日:2016/06/19 09:41:12  ID:???.net(1523)
sql というよりはそのモジュールの運用方法の話のようだな

9
NAME IS NULL[sage]   投稿日:2016/06/19 10:24:19  ID:???.net(1523)
無謀な気が
ユーザーごとにDB分けちゃダメなん?
コメント2件

10
NAME IS NULL[sage]   投稿日:2016/06/19 11:22:35  ID:???.net(1523)
1つのファイルのほうがユーザが使いやすいかと思っています。

もしかしたら sql という枠組みで話す質問ではないのかもしれません。
sql は初心者なので、動的テーブル名などを調べたのですが何か違う気がしました。
sql は歴史もあるし、自分の考えている程度のことはすでに枠組みができているのかと思い質問しました。

sql の枠組みですんなり当てはまるものがないとわかっただけで前進です。
ありがとうございました。

11
NAME IS NULL[sage]   投稿日:2016/06/19 11:31:36  ID:???.net(1523)
DBの世界でデータをストアすると言いますが、
では読み出す場合は何て言うのでしょうか?

12
NAME IS NULL[sage]   投稿日:2016/06/19 11:35:49  ID:???.net(1523)
>9
1つのファイルにこだわりすぎていたかもしれません。
DB を分ける案を検討しようと思います。
ありがとうございました。
コメント2件


13
NAME IS NULL[sage]   投稿日:2016/06/19 11:58:16  ID:???.net(1523)
>12
5にも礼を言っとけ。
全く同じこと先に言ってる
コメント2件

14
NAME IS NULL[sage]   投稿日:2016/06/19 13:52:20  ID:???.net(1523)
>13
そういう意味だったんですね

>5
ありがとうございました。

15
NAME IS NULL[sage]   投稿日:2016/06/21 16:53:37  ID:???.net(1523)
一旦作ったテーブルを長期間使うのではなく、一日にテーブルのcreateやdropを何十回も繰り返すような使い方は特に問題有りませんか?
コメント2件

16
NAME IS NULL[sage]   投稿日:2016/06/21 18:07:42  ID:???.net(1523)
要件次第

17
NAME IS NULL[sage]   投稿日:2016/06/21 18:32:30  ID:???.net(1523)
>15
大丈ー夫

18
NAME IS NULL[]   投稿日:2016/07/09 17:51:20  ID:uRuLwqJe.net(4)
取得した順番に数値をインクリメントして表示したいのですが、どういった文法をすればいいですか?
シーケンスとかそういうことではなく、

select
user,num
from
user

みたいなsqlで
userA 1
userB 2
userC 3

のようにnumに取得した順番に数値をインクリメントしたいです。

19
NAME IS NULL[]   投稿日:2016/07/09 17:59:50  ID:uRuLwqJe.net(4)
set @i:=0;
select @i:=@i+1 as rownum,user_id from user;

こういう書き方で自己解決しました。

20
NAME IS NULL[]   投稿日:2016/07/21 20:04:08  ID:W6OLWaxQ.net(2)
質問するときはRDBの名前くらいは書きましょう。

21
NAME IS NULL[sage]   投稿日:2016/08/07 07:38:31  ID:???.net(1523)
mysql 5.6.20 です

daily_tblからcode毎の最新入力日付を得るのに
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
order by code;
で出せたんですが、
今度はその日付が指定の日付でないもののみを出そうとして
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
where max(inout_date) != '2016-08-05'
group by code
order by code;
とすると、Invalid use of group function ってエラーで出来ません。コード毎の最新入力日付が指定の日付でないもののみを
出すようにするにはどうすればいいのでしょうか

22
NAME IS NULL[sage]   投稿日:2016/08/07 10:36:30  ID:???.net(1523)
inputなのかinputなのか気になるが、、、
having by 使うケースかなこれ?
コメント2件

23
NAME IS NULL[sage]   投稿日:2016/08/07 10:37:21  ID:???.net(1523)
おっとgroup by の文字省いた時にby残しちゃったhaving ね

24
21[sage]   投稿日:2016/08/07 16:10:17  ID:???.net(1523)
あぁinoutになってるw inputです

25
21[sage]   投稿日:2016/08/07 16:17:17  ID:???.net(1523)
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
having max(input_date) != '2016-08-05'
order by code;

で出てきました。実際に使う時に全然havingなんて思いつきもしなかったです^^;
コメント2件

26
NAME IS NULL[sage]   投稿日:2016/08/07 16:18:21  ID:???.net(1523)
>22
ありがとうございます

27
NAME IS NULL[]   投稿日:2016/08/07 16:59:37  ID:mqpBG9Ui.net(4)
>25
テーブル修飾があったり、なかったりしているところがちょっと気持ち悪い。

28
25[sage]   投稿日:2016/08/07 18:45:08  ID:???.net(1523)
この場合、codeについては付けないと ambiguous 曖昧と言って怒られてしまうんですが、全部にどちらのテーブルのものなのか
はっきりさせておけってことですか?
コメント2件

29
NAME IS NULL[sage]   投稿日:2016/08/07 19:19:26  ID:???.net(1523)
>28
はい

30
25[sage]   投稿日:2016/08/07 20:34:00  ID:???.net(1523)
努力します^^;

31
NAME IS NULL[]   投稿日:2016/08/07 20:46:40  ID:mqpBG9Ui.net(4)
この例の場合、同じカラムがあるなら、FROM句の最初にあるテーブルのテーブル別名aで修飾するのが一般的。

他人がこのSQLだけを見たとき、この書き方だとどちらのテーブルのカラムか分からない。

32
NAME IS NULL[sage]   投稿日:2016/08/21 09:41:45  ID:???.net(1523)
mysql5.7を使用しています
ユーザーのゲーム内マネーをwalletテーブルで管理していて
新たにユーザーの最大マネー記録の管理が必要になったので
recordテーブルを新たに作ることにしました

walletテーブル: id, user_id, gold
recordテーブル: id, user_id, max_gold

質問なのですが、walletテーブルのgoldから
recordテーブルのmax_goldを全ユーザー分一括で更新するにはどうしたらいいでしょうか
よろしくお願いします

33
NAME IS NULL[sage]   投稿日:2016/08/21 14:33:49  ID:???.net(1523)
recordには全idすでにある前提?

UPDATE record
SET max_gold = (SELECT MAX(gold) FROM wallet
WHERE record.user_id = wallet.user_id);

とかは?
コメント4件

34
32[sage]   投稿日:2016/08/22 01:44:39  ID:???.net(1523)
>33
レスありがとうございます
説明が不足していてすみません
userテーブルとwalletテーブルは1対1になっています
userテーブルとrecordテーブルも1対1です
全user分のwalletとrecordが存在します
walletテーブルのgoldは増減します
recordテーブルのmax_goldは過去最高goldです
あるタイミングで複数walletに一斉にgoldがプラスされます
そのときにwalletのgoldがrecordのmax_goldより大きければmax_goldを更新したいです
自分なりに調べてupdateとjoinを使うのだろうということはわかりましたがSQLを書けずにいます
教えていただけると嬉しいです
よろしくお願いします
コメント4件

35
NAME IS NULL[]   投稿日:2016/08/22 01:49:54  ID:nVybO4PH.net(6)
>34
まずはひとつずつ考えて。

段階的に考えていかないと。

36
NAME IS NULL[sage]   投稿日:2016/08/22 04:14:30  ID:???.net(1523)
別にその条件でも>33でいけるだろ

37
NAME IS NULL[sage]   投稿日:2016/08/22 04:17:24  ID:???.net(1523)
あー元がmaxより小さいケースがあんのか、でもl条件一つ追加するだけだよな

38
32[sage]   投稿日:2016/08/22 10:24:05  ID:???.net(1523)
自己解決できたみたいです

update record
left join wallet on record.user_id = wallet.user_id
set record.max_gold = if(wallet.gold > record.max_gold, wallet.gold, record.max_gold)
where record.user_id = wallet.user_id;

これでやりたいことはできたと思います
ありがとうございました
コメント6件

39
NAME IS NULL[sage]   投稿日:2016/08/22 10:41:57  ID:???.net(1523)
ちょっと見ただけですけど
recordテーブルを追加するのではなく、
walletテーブルに max_goldという項目を追加すれば良いのでは?
コメント2件

40
NAME IS NULL[sage]   投稿日:2016/08/22 10:57:44  ID:???.net(1523)
user_idごとに1件しか無いのにidが別にあることとかいろいろ気になるけど
まあなんか書いてない理由があるんだろう、、、

どうしても最新状態保つなら単にトリガ書くだけのが早そうだが
コメント2件

41
NAME IS NULL[]   投稿日:2016/08/22 13:08:23  ID:nVybO4PH.net(6)
>38
正直に言ってくそSQLだわ。

他人があとでみたら、こいつ殺すと思われるレベル。

42
NAME IS NULL[sage]   投稿日:2016/08/22 13:40:23  ID:???.net(1523)
初心者スレなんだからぼろくそに言うのではなく改善案を提示しないと

43
NAME IS NULL[sage]   投稿日:2016/08/22 13:59:03  ID:???.net(1523)
これは更新が1回でも失敗したらもう最大値が出せなくなるじゃん

44
NAME IS NULL[sage]   投稿日:2016/08/22 18:58:47  ID:???.net(1523)
>34
walletに時系列データはないのか?
ないと実現出来ないのではないか?
コメント2件

45
32[sage]   投稿日:2016/08/22 20:10:31  ID:???.net(1523)
だめなSQLのようですね
どこが悪いのかがわからないのでどう改善していいのかもわかりません
具体的に指摘してもらえると助かります
SQL難しいですね

>39
recordにはユーザーの最大ゴールド以外にもいろいろな記録を持たせようと思っています

>44
時系列データはありません
コメント2件

46
NAME IS NULL[sage]   投稿日:2016/08/22 22:48:38  ID:???.net(1523)
開始の残高ファイルと更新データがあれば累計関数使って累計残高viewを作ってその最大値で更新したほうがいいと思う
mysqlでは下記リンク先参照
http://pct.unifas.net/mysql/3712

47
NAME IS NULL[]   投稿日:2016/08/22 23:24:46  ID:nVybO4PH.net(6)
>45
疑問なのは、UPDATE文ひとつでやらないと本当にいけないの?

こういう状況がわからない。
コメント2件

48
NAME IS NULL[sage]   投稿日:2016/08/23 03:22:31  ID:???.net(1523)
>38のSQLでは、実行時のwalletの値が最大値だったときしか更新されないぞ
履歴保持してないのに全ユーザ一括は無理(全ユーザのwallet更新タイミングが同じでない限り)

walletが時系列や履歴を持たずに、現在値しか保持してないなら
walletの更新時にrecordを更新しないとダメ

で、普通のDBMSなら、こういうのはwalletにトリガ張ってやる
walletを更新するストアドプロシジャ作ってそれでチェックするって方法もあるけど
コメント2件

49
32[sage]   投稿日:2016/08/23 12:32:35  ID:???.net(1523)
>47
どういうサイトなのかを説明すべきでしたすみません
ざっくり言うと競馬のようなサイトをやっています
レース終了後に払い戻しとして的中した全ユーザーのwalletのgoldを
ユーザーが賭けた額×オッズ分プラスします
この払い戻しのタイミングでmax_goldを更新したいと思い>38のようなSQLを考えました
goldが増えるタイミングは払い戻し時のみです

>48
トリガ、ストアドプロシジャを初めて知りました
調べてみようと思います。ありがとうございます

50
NAME IS NULL[sage]   投稿日:2016/08/23 12:41:04  ID:???.net(1523)
>40 でトリガって書いてるのになw

51
NAME IS NULL[sage]   投稿日:2016/08/23 12:42:04  ID:???.net(1523)
どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
SQL以前にDB設計じゃねえの
コメント2件

52
NAME IS NULL[sage]   投稿日:2016/08/23 12:55:29  ID:???.net(1523)
>51
> どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
と思ってるような奴の方が使い物になるとは思えんな

53
32[sage]   投稿日:2016/08/23 13:06:07  ID:???.net(1523)
データベースの勉強をおろそかにしてORMに頼ってたツケが回って来た感があります
データベースについて基本からしっかり勉強し直したいのですが
おすすめの本やサイトを教えていただけないでしょうか
コメント2件

54
NAME IS NULL[sage]   投稿日:2016/08/23 14:43:56  ID:???.net(1523)
>53
amazonでデータベースで検索し、設計関連の評判の良いものを5冊買え

55
NAME IS NULL[sage]   投稿日:2016/08/24 14:41:29  ID:jYRxe2VKj(2)
元データ
列A 列B
 A  1
 A  2
 B  1
 C  3


結果
 1  2  3
A ○ ○
B ○
C      ○

のような結果を得たい場合、どのようなSQLを書けばよいでしょうか?

56
NAME IS NULL[sage]   投稿日:2016/09/01 16:46:33  ID:???.net(1523)
SQLっていうか、DBそのものに関する質問になってしまうんですが。。。

データベースに同じUserID、同じパスワードで複数ログイン出来るってのは一旦資格を与えられたユーザーに
ついてはその権限の範囲なら信用するってことなんですかね。

57
NAME IS NULL[sage]   投稿日:2016/09/01 17:48:15  ID:???.net(1523)
1ユーザ1コネクションの制限を設けたとしたら、マルチプロセスやマルチスレッドなクライアントが任意のタイミングでコネクションを生成するのに苦労するよ。

58
55[sage]   投稿日:2016/09/01 18:40:00  ID:???.net(1523)
そちらの方のプログラミングには疎いんですが、とにかくそういう制限があるとまずいってわけなんですね。^^;
例えば一般ユーザーに開放しているデータベースがあるとして、そこにアクセスするユーザーにいちいちidとパスワード、権限を
与えるのも大変だなとは思ったんですが。
コメント6件

59
NAME IS NULL[sage]   投稿日:2016/09/01 19:02:23  ID:???.net(1523)
何に関しては疎くないの?
コメント2件

60
NAME IS NULL[sage]   投稿日:2016/09/01 20:30:50  ID:???.net(1523)
>59
バカ発見
コメント2件

61
NAME IS NULL[sage]   投稿日:2016/09/01 21:43:12  ID:???.net(1523)
>60
回答してあげなよ ^^

62
NAME IS NULL[sage]   投稿日:2016/09/01 22:57:57  ID:???.net(1523)
>58
なんかいろいろ勘違いしてる

63
NAME IS NULL[]   投稿日:2016/09/02 02:24:24  ID:RT8+OUHE.net(2)
>58
RDBMSでもOSでも1ユーザー、1セッションというものの方が珍しい。

64
NAME IS NULL[sage]   投稿日:2016/09/02 02:39:07  ID:???.net(1523)
まあRDBMSによって「ユーザー」というものの定義は異なるけどな

65
NAME IS NULL[sage]   投稿日:2016/09/04 21:42:59  ID:???.net(1523)
トランザクションとかの話?

66
NAME IS NULL[sage]   投稿日:2016/09/04 21:58:50  ID:???.net(1523)
ユーザ用(id,パスワード)のテーブルがあった方がいいと思うけど

67
NAME IS NULL[sage]   投稿日:2016/09/04 22:33:29  ID:???.net(1523)
>58
>例えば一般ユーザーに開放しているデータベースがあるとして、
>そこにアクセスするユーザーにいちいちidとパスワード、権限を
>与えるのも大変だなとは思ったんですが。

一般ユーザーに直接データベースを操作させることは普通しないと思う。

そうではなく、データベースを利用するシステムが、利用ユーザーに提供する
業務用アカウントの話じゃないのかな?

68
NAME IS NULL[sage]   投稿日:2016/09/04 22:40:44  ID:???.net(1523)
ユーザ用って書き方がおかしかった
ユーザを管理するテーブル

69
NAME IS NULL[sage]   投稿日:2016/09/05 16:09:42  ID:???.net(1523)
最初にテーブルを作成したら、新しいテーブルは必要ないシステムを作っています
この場合、テーブル構造をどう保存するのが正しいやり方ですか?
とりあえずcreate文を保存しています
コメント2件

70
NAME IS NULL[sage]   投稿日:2016/09/05 16:42:31  ID:???.net(1523)
>69
それでいいよ
コメント2件

71
NAME IS NULL[sage]   投稿日:2016/09/05 16:46:05  ID:???.net(1523)
DBのツールでスキーマ保存すると結局CREATE文だけってのもあるしな

72
NAME IS NULL[sage]   投稿日:2016/09/05 16:53:22  ID:???.net(1523)
>70
ありがとうございます

73
NAME IS NULL[sage]   投稿日:2016/09/16 14:02:36  ID:???.net(1523)
例えば名簿のtableがあって、
id name address
という三つのカラムがあります。
idは重複しない番号です。
この時 id で order by して、
idが1000番台の人の最初の100人取り出す。
idが2000番台の人の最初の100人取り出す。
みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
何か良い方法はありますか?
MySQLです。
コメント4件

74
NAME IS NULL[sage]   投稿日:2016/09/16 15:12:58  ID:???.net(1523)

75
NAME IS NULL[sage]   投稿日:2016/09/16 15:37:16  ID:???.net(1523)
>73
> みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
indexが使われるなら効率は悪くない
コメント2件

76
NAME IS NULL[sage]   投稿日:2016/09/16 15:46:47  ID:???.net(1523)
>74>75
すみません、初心者なのでもう少しヒント下さい。
よく理解できません。
コメント4件

77
NAME IS NULL[sage]   投稿日:2016/09/16 15:50:26  ID:???.net(1523)
>76
select * from 名簿 where id >= 1000 order by id limit 100;
とかするんだろうけど、idにindexが付けられてるなら効率は悪くない
これでわからないのならお手上げ

78
NAME IS NULL[sage]   投稿日:2016/09/16 15:57:39  ID:???.net(1523)
処理が必ず1000番台ごとにするなら
もう一つ項目daiを追加して、indexを張っておき
id 1000〜1999 には 1 をセット
id 2000〜2999 には 2 をセット
id 3000〜3999 には 3 をセット
というのは?
select * from 名簿 where dai=1 order by id limit 100;
コメント2件

79
NAME IS NULL[sage]   投稿日:2016/09/16 16:32:17  ID:???.net(1523)
>78
それだとindexは使われない
コメント4件

80
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:12:26  ID:???.net(1523)
>76
select *
from 名簿
where
id between 1 and 100 or
id between 1000 and 1100 or
id between 2000 and 2100

81
NAME IS NULL[sage]   投稿日:2016/09/16 17:17:10  ID:???.net(1523)
>79
そんなのDBMSとオプティマイザの判断次第
カーディナリが十分高ければ、daiのインデックスは使われる可能性が高いだろ

元質問はMySQL指定か。MySQLのオプティマイザでは絶対使わんっていう話なら知らん
コメント4件

82
NAME IS NULL[sage]   投稿日:2016/09/16 17:19:10  ID:???.net(1523)
>79
idに抜け番がないとはどこにも書いてないけどな

83
NAME IS NULL[sage]   投稿日:2016/09/16 17:39:29  ID:???.net(1523)
>81
MySQLのこと知らんなら黙っとけよ
コメント2件

84
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:42:18  ID:???.net(1523)
>83
まいしーくぇる

85
NAME IS NULL[sage]   投稿日:2016/09/16 18:05:34  ID:???.net(1523)
mysqlはクソだからしかたがない。
コメント2件

86
NAME IS NULL[sa ge]   投稿日:2016/09/16 18:10:25  ID:???.net(1523)
>85
まいしーける

87
NAME IS NULL[sage]   投稿日:2016/09/16 18:25:35  ID:???.net(1523)
そういや、mysqlではsub queryが劇遅だってのは直ったの?

88
NAME IS NULL[sage]   投稿日:2016/09/16 21:39:39  ID:???.net(1523)
>81
daiのカーディナリティも十分に大きければそのインデックスも使われるだろうけど、
常にそれよりカーディナリティが大きいidのインデックスを使った方がいいに決まってる。
それにそもそもidでソートするわけだし。

89
NAME IS NULL[sage]   投稿日:2016/09/17 02:16:52  ID:???.net(1523)
ありがとうございました
indexを試してみます

90
NAME IS NULL[sage]   投稿日:2016/09/22 11:38:01  ID:???.net(1523)
SELECT * FROM table
WHERE ...
 AND ...
 AND ...
 AND ...
のようにAND条件をズラズラ並べる場合、
その条件を並べる順番で処理速度は変わりますか?
コメント2件

91
NAME IS NULL[sage]   投稿日:2016/09/22 12:44:02  ID:???.net(1523)
長文失礼します。
mysqlで
article_infoテーブルに title(記事タイトル),url(記事のurl)を持っています。
blog_infoテーブルには blog_title(ブログのタイトル),blog_url(ブログのtopのurl)を持っています。

やりたいこと:
article_infoで取得した記事のブログのタイトルを一緒に取得したい。
article_info.url は、,blog_urlのレコードのどれかを含んでいます。
例:
blog_title:サンプルブログ
blog_url:http://sample.com/
article_info.url:http://sample.com/article/001


   
のようになっているので、もし取得したurlがblog_urlに含んでいた場合、対応するblog_titleを共に表示したいと考えています。

92
90[sage]   投稿日:2016/09/22 13:24:14  ID:???.net(1523)
ちなみに
SUBSTRING(url,1,LOCATE('/',url,8))  でblog_urlのどれかとマッチするurlが作れることがわかりました。

93
NAME IS NULL[sage]   投稿日:2016/09/22 13:32:19  ID:???.net(1523)
>90
普通は検索方法はオプティマイザが判断するから関係ない

定義順に条件書かれてないと複合インデックスが使用できないDBMSがあるとかいう噂は昔聞いたことある
その場合は複合インデックスの定義順に並べるほうが早い可能性が高い

オプティマイザが貧弱で検索順を入れ替えられないDBMSも聞いたことがある
その場合はカーディナルの高い順に検索条件並べろと教えられたことはある
単一テーブルの単純な検索なら、最悪でもそのテーブルのフルスキャン1回ですむから
まあどうでもいいと思うが
コメント2件

94
90[sage]   投稿日:2016/09/22 13:33:17  ID:???.net(1523)
すみません。下記のかんたんなsqlで取得できました。お騒がせしました。
select
a.title,
a.url,
b.blog_title
from
article_info a,blog_info b
コメント4件

95
NAME IS NULL[sage]   投稿日:2016/09/22 20:16:59  ID:???.net(1523)
>93
詳しい説明ありがとうございました。
MySQLです。
念のために順番を考慮してAND条件を書いてみます。

96
NAME IS NULL[sage]   投稿日:2016/09/22 23:39:21  ID:???.net(1523)
>94
fromでカンマで繋げるのは
INNER JOINの省略形な

97
NAME IS NULL[sage]   投稿日:2016/09/22 23:45:57  ID:???.net(1523)
cross joinだろ

98
NAME IS NULL[sage]   投稿日:2016/09/22 23:53:56  ID:???.net(1523)
ふつう直積(CROSS JOIN)だと思うんだが、>94読んであれ?と思った。
MySQLってそうなのか?

99
NAME IS NULL[sage]   投稿日:2016/09/23 00:03:00  ID:???.net(1523)
whereでなんかしてなければ直積だな

100
93[sage]   投稿日:2016/09/23 02:59:28  ID:???.net(1523)
すいません、できたと思ってたけどできてませんでした。
しょうがないのでarticle_infoとblog_infoにblog_idカラムを追加して
Inner join で持ってきました。

101
NAME IS NULL[]   投稿日:2016/09/24 09:51:02  ID:UI+2ILvZ.net(4)
教えて下さい。
インサートしたカラムに不要な文字[:]がついてしまったのですが、
replaceで毎回取り除いてるとクエリが遅くなるので、すべて更新したいのですが、
update文で出来ますか?

102
100[]   投稿日:2016/09/24 09:57:30  ID:UI+2ILvZ.net(4)
できました。忘れてください。

103
NAME IS NULL[sage]   投稿日:2016/10/05 22:12:12  ID:???.net(1523)
mysqlで質問です。
ng_wordテーブルがあります。
テーブルには、wordカラムにキーワードが登録されています。

main_textテーブルのtextカラムの中には
テキストの文章が入っています。

もしmain_textの中にng_wordのwordが含まれていたら、取得したくないのですが、
ロジックを挟まず、sqlだけで取得できますか?
コメント6件

104
NAME IS NULL[sage]   投稿日:2016/10/05 22:26:56  ID:???.net(1523)
WHERE main_text NOT LIKE '%word%' じゃだめだったか?
コメント2件

105
102[sage]   投稿日:2016/10/05 22:40:45  ID:???.net(1523)
>104
ワードが1つならそれでも良いかもしれませんが、
複数あるので…

106
NAME IS NULL[sage]   投稿日:2016/10/06 00:04:56  ID:???.net(1523)
このスレ、SQL文書こうとするとエラーになる
どうしたもんかな・・・
コメント2件

107
NAME IS NULL[sage]   投稿日:2016/10/06 00:19:48  ID:???.net(1523)
Sorry, you have been blocked
You are unable to access 2ch.net

There are several actions that could trigger this block including submitting
a certain word or phrase, a SQL command or malformed data.

SQL文を投稿しようとすると、ハッキング行為とみなされるみたい
コメント2件

108
NAME IS NULL[sage]   投稿日:2016/10/06 00:22:02  ID:???.net(1523)

109
NAME IS NULL[sage]   投稿日:2016/10/06 18:36:58  ID:???.net(1523)
不便になったもんだな

110
NAME IS NULL[]   投稿日:2016/10/16 17:07:47  ID:9/d7j9zT.net(2)
>107
まあSQLインジェクション対策なんだろうけどな。

111
NAME IS NULL[]   投稿日:2016/10/16 17:11:39  ID:53yW0F3M.net(2)
>108
前の書き込みをよく見ていないけど、テーブルの結合条件もなければ、カラムのテーブル名修飾もなくてわからない。

テーブル間の関係を説明してくれ。

そもそも初めに書いたようにSQLの書き方そのものが悪い。

112
NAME IS NULL[sage]   投稿日:2016/10/16 19:59:14  ID:???.net(1523)
>103 に書いてあるだろうに、何が分からないのか分からない

113
NAME IS NULL[]   投稿日:2016/10/16 23:41:51  ID:yy6enVq7.net(2)
兄弟関係の抽出 と LIMIT、OFFSETに代わるもの (マルチ)

OS: Windows 10 Pro
Access Version: 2016 (2010も使用)
VBA:Excel,Powerpointのみ
VBAでの回答:否
検索キーワード:access SQL 件数 指定


http://www.accessclub.jp/bbs2/0051/beginter16860.html
「No16860.SQLで件数を指定する方法」

SELECT [電話番号] FROM [T_児童マスタ] GROUP BY [電話番号] HAVING Count(*)>1

上記2つ等を元に、次のテーブルに適応させようとしていますが、
スマートな文、クエリ(または他の手法)が思いつきません。
どうかアドバイスをお願いいたします。


T_児童マスタ

学級 氏名 電話番号
11  A  1111-11-1111
21  B 2222-22-2222
31  C 1111-11-1111
41  D 2222-22-2222
51  E 1111-11-1111
61  F 3333-33-3333



望む出力結果

学級 氏名 電話番号    兄弟学級1 兄弟氏名1 兄弟学級2 兄弟氏名2 兄弟学級3 兄弟氏名3
11  A  1111-11-1111  31     C     51     E     
21  B 2222-22-2222  41     E
31  C 1111-11-1111  11     A     51     E
41  D 2222-22-2222  21     B
51  E 1111-11-1111  11     A     31     C
61  F 3333-33-3333
コメント6件

114
NAME IS NULL[]   投稿日:2016/10/17 01:58:23  ID:ee1NFGBS.net(2)
>103
直積で結合して、textとwordを引数にとる文字列検索関数があれば、それをWHERE句の絞り込み条件にすればできるな。

115
NAME IS NULL[sage]   投稿日:2016/10/17 07:12:12  ID:???.net(1523)
>113
兄弟の数は可変なの?
2固定なら普通にjoinすればいい
コメント2件

116
NAME IS NULL[sage]   投稿日:2016/10/17 07:13:39  ID:???.net(1523)
>115
よくみたら2じゃなくて3か

117
NAME IS NULL[sage]   投稿日:2016/10/17 07:25:17  ID:???.net(1523)
堂々とマルチと宣言すれば文句言われない!キリッ

118
NAME IS NULL[]   投稿日:2016/10/17 07:35:53  ID:w90R1vLK.net(2)
>113
こんな感じでいいと思う
SELECT
MM.学級 
,MM.氏名 
,MM.電話番号
,S1.学級 AS 兄弟学級1
,S1.名前 AS 兄弟氏名1
,S2.学級 AS 兄弟学級2
,S2.名前 AS 兄弟氏名2
,S3.学級 AS 兄弟学級3,
S3.名前 AS 兄弟氏名3
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
on S1.電話番号 = MM.電話番号
and S1.学級 <> MM.学級
LEFT JOIN T_児童マスタ AS S2
on S2.電話番号 = MM.電話番号
and S2.学級 <> MM.学級
and S2.学級 <> S1.学級
LEFT JOIN T_児童マスタ AS S3
on S3.電話番号 = MM.電話番号
and S3.学級 <> MM.学級
and S3.学級 <> S1.学級
and S3.学級 <> S2.学級
WHERE nz(S1.学級,999) <= nz(S2.学級,999)
and nz(S2.学級,999) <= nz(S3.学級,999)
コメント6件

119
NAME IS NULL[sage]   投稿日:2016/10/17 13:02:38  ID:???.net(1523)
>106
全角

120
NAME IS NULL[]   投稿日:2016/10/17 18:24:29  ID:3tZ2amHg.net(6)
>118
ありがとうございます。
これから試してみます。

121
NAME IS NULL[]   投稿日:2016/10/17 19:50:25  ID:3tZ2amHg.net(6)
>118
少し拡張してみたところ「演算子がありません」とのエラーが
出てしまいます。かなり初歩的な質問になってしまいますが、
問題点をお教えください。宜しくお願いします。


SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号  ←ここ
AND S1.学年 <> MM.学年     ←ここ
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
コメント2件

122
NAME IS NULL[]   投稿日:2016/10/17 20:30:12  ID:3tZ2amHg.net(6)
>113 >118 >121
こんな感じにしてみましたが、
今度は「JOIN式はサポートされていません。」
と出てしまいます。

SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM
(
(
T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号
AND S1.学年 <> MM.学年
)
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
)
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
コメント4件

123
NAME IS NULL[sage]   投稿日:2016/10/18 00:34:12  ID:???.net(1523)
>122
accessでは一つのクエリではできないみたい
サブクエリ作って3段重ねで繋げてみて
コメント2件

124
NAME IS NULL[sage]   投稿日:2016/10/18 03:32:30  ID:???.net(1523)
重複行を見付けたら一行のみ残して他を削除したいのですが、
列名などを指定せずに、
DeleteDuplicateRow テーブル名
みたいなコマンドは無いのでしょうか?
キーは有りません。

125
NAME IS NULL[sage]   投稿日:2016/10/18 11:21:45  ID:???.net(1523)
その残す1行の指定はどうやって決まる?
基本的にSELECTできるものは消せる
コメント2件

126
NAME IS NULL[sage]   投稿日:2016/10/18 11:44:05  ID:???.net(1523)
>125
重複しているので、どれを消しても良いと思うのですが。

127
NAME IS NULL[sage]   投稿日:2016/10/18 11:49:15  ID:???.net(1523)
重複って言うのは、特定のフィールドだけじゃなく
(プライマリーキー以外)全てのフィールドが同じ値になるレコード
って意味で良いのかな?
コメント2件

128
NAME IS NULL[sage]   投稿日:2016/10/18 11:52:11  ID:???.net(1523)
>127
そうです。
プライマリキーも設定していません。
コメント2件

129
NAME IS NULL[sage]   投稿日:2016/10/18 12:29:42  ID:???.net(1523)
>128
a
a
a
これを一行残して消すとか無理だろ
コメント4件

130
NAME IS NULL[sage]   投稿日:2016/10/18 12:34:08  ID:???.net(1523)
distinctで作り直す
コメント2件

131
NAME IS NULL[sage]   投稿日:2016/10/18 12:36:25  ID:???.net(1523)
>129
a

132
NAME IS NULL[sage]   投稿日:2016/10/18 12:36:59  ID:???.net(1523)
>129
sqlserver ならrownumber関数使えばできる

133
NAME IS NULL[sage]   投稿日:2016/10/18 12:39:09  ID:???.net(1523)
>132
とりあえずMySQLです。SQL SERVERでもやりたいです。
コメント2件

134
NAME IS NULL[sage]   投稿日:2016/10/18 14:01:40  ID:???.net(1523)
>133
やはり他の同じ値になるレコードと区別するために
一意のカラムをつけないと削除は無理だと思います
あるいは、>130さんのやり方でテーブル全体を作り直すのが簡単

135
NAME IS NULL[sage]   投稿日:2016/10/18 15:17:32  ID:???.net(1523)
一意になるフィールドがあれば(例えばプライマリキーがあれば)、
プライマリキー以外のフィールドでグループ化し、
その上で、一番小さなプライマリキー値のリストを取得、
そのキーリスト以外の全レコードを削除、って感じでできます。

136
NAME IS NULL[sage]   投稿日:2016/10/18 17:24:15  ID:???.net(1523)
RDBMSで全く同じレコードは扱うの大変だし意味ないので今後のためにキー追加するか
重複したものは登録できないようにしたほうが良さげ

137
NAME IS NULL[]   投稿日:2016/10/19 01:24:02  ID:wlxzgloU.net(2)
皆さん、いろいろアドバイスありがとうございました。
134さんの方式を試してみます。
重複する行を除去するような操作は普通はやらないのですか?
コメント2件

138
NAME IS NULL[sage]   投稿日:2016/10/19 06:20:22  ID:???.net(1523)
だからその重複させるような事態そのものを発生させないようにしてるんだってば

139
NAME IS NULL[sage]   投稿日:2016/10/19 07:09:29  ID:???.net(1523)
>137
そのためのプライマリキーです

140
NAME IS NULL[sage]   投稿日:2016/10/19 07:23:29  ID:???.net(1523)
重複データ消すのに、rownumber 関数が使えればorder byが使えるので、金額が大きいのとか最新のを残すとかできて便利なんだよな
http:/sotoattanito.hatenablog.com/entry/2015/10/20/230208

141
NAME IS NULL[sage]   投稿日:2016/10/19 18:19:03  ID:???.net(1523)
>122 >123

かなり長文になりましたが、うまくいきました。
ありがとうございました。
コメント2件

142
NAME IS NULL[sage]   投稿日:2016/10/20 05:26:44  ID:???.net(1523)
>141
質問だけなら長文にならないだろ
後付けの条件あるからだろ

143
NAME IS NULL[sage]   投稿日:2016/10/25 01:39:06  ID:???.net(1523)
以前見たDBのER図でずっと気になってるのがあるんだが
複合主キーでテーブル繋げていくやり方って普通なんかな

例えば

「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー →
繋がる「生徒」テーブルで「生徒番号」が追加 →
「塾」テーブルでは「塾番号」が追加 →
「教室」テーブルでは「教室番号」が追加

DB連携の案件(基幹系のDBに、WebとDBが一緒になった鯖からでリンクドサーバで合体)で、その教室テーブルの先に
「塾生がどこの塾で試験申し込んだか」を突っ込むテーブルこさえてどうこうするって奴だったんだが

みたいなのとでもいうか、SQLで書くと

select *
from school inner join
(select *
  from person inner join student on
  person.name = student.name and person.tel = student.tel and
  person.gender = student.gender and person.age = student.age) as selected_student on
  selected_student.name = school.name and selected_student.tel = school.tel ... ;ごめんもう無理

みたいな奴
細部があってるかどうかは覚えてないが、だいたいそういうSQLでないと仕様がない
ER図だったから泣きながらやった

書籍を見るととりあえずID振って縛りたいのにユニーク制約らしいんだが
実際だと複合主キー使っていくんだろうか?
正直DBの設計よくわかってない下請けのアホなんで、NE〇の方が正しいのかなあ、などと疑問が
コメント2件

144
142[]   投稿日:2016/10/25 01:43:49  ID:gb+5Pezb.net(2)
正確にはプログラマーですらない事務員 orz なんか釈然としないんだが、そういうものなのかなあ、と

145
NAME IS NULL[sage]   投稿日:2016/10/25 10:09:16  ID:???.net(1523)
>143
>「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー
そもそもこれが普通じゃない

> 正直DBの設計よくわかってない
本買って読め

146
NAME IS NULL[sage]   投稿日:2016/10/25 17:32:39  ID:???.net(1523)
個人で主キーに年齢含むのは普通ないとは思うが
複合キーそのものは別に珍しい物でもない

まあ、ミドル層の都合で全部にID振ろうとか言う流れも無いわけではないけどな

147
NAME IS NULL[sage]   投稿日:2016/10/25 19:09:21  ID:???.net(1523)
年齢は毎年変わるだろう
キーにしたいなら、生年月日の方
コメント2件

148
NAME IS NULL[sage]   投稿日:2016/10/25 20:35:20  ID:???.net(1523)
実は死没者名簿だったとか

149
NAME IS NULL[sage]   投稿日:2016/10/25 21:14:22  ID:???.net(1523)
死没者の集まる塾の教室か

150
NAME IS NULL[sage]   投稿日:2016/10/26 03:35:36  ID:???.net(1523)
>147
17からインクリメントしない声優なら知っている

151
NAME IS NULL[sage]   投稿日:2016/10/26 08:42:54  ID:???.net(1523)
現在年齢とは言ってない気がする。

152
NAME IS NULL[sage]   投稿日:2016/10/26 10:55:39  ID:???.net(1523)
人によって異なる解釈を受けるような定義名は避けた方がいい

153
NAME IS NULL[]   投稿日:2016/10/26 23:41:52  ID:iZaFjONH.net(2)
qiitaって無能のくせにタイトルで煽って
一読すれば書き手が思い込みの激しい初心者だってわかるんだけど
多数からコメントで間違い指摘されるとクソリプがwwwwwwwと煽ったり
せやから違う場合もあるって最後に書いてるやろ日本語読めんのかバカチョンwww
みたいな臭い奴が結構混じってるけどアレなんのためにやってんの?
誤解を招くタイトルでgoogle上位になるとqiitaから金もらえるの?

154
NAME IS NULL[]   投稿日:2016/10/27 00:01:04  ID:zKThEwol.net(2)
てすてす

155
NAME IS NULL[]   投稿日:2016/10/28 12:59:25  ID:F5E1O/a0.net(6)
お邪魔いたします。
ManegementStudioでストアドプロシージャをかけるようになりたいのですが、
家庭教師をしてくださる方いらっしゃいませんでしょうか?
お礼はご相談にて。
捨てアドをさらしますので、ボランティア精神にあふれる方お待ちしております。

rirarira_01@yahoo.co.jp
コメント4件

156
NAME IS NULL[]   投稿日:2016/10/28 13:40:24  ID:7+o0ZZYT.net(4)
>155
お礼をするというのにボランティアとはどういうことなのか?
コメント2件

157
NAME IS NULL[]   投稿日:2016/10/28 13:43:36  ID:7+o0ZZYT.net(4)
>155
Transact-SQLの本ならあるだろ。

昔からそんなに変わってない。

Management Studioがどうこうというはどういう意味?
コメント2件

158
154[]   投稿日:2016/10/28 14:13:08  ID:F5E1O/a0.net(6)
>156
すみません、言葉足らずでした。
お礼はするんですが、なかなかお忙しい皆様が多いかと思いますので、
不勉強な私に時間を割いてくださるボランティア精神にあふれる方を
募集しておりました。

>157
ありがとうございます。
早速購入してみます。

一次面接を合格した企業様がManegementStudioを使用しており
(SQLserber2014)ManegementStudioを使用して、
ストアドプロシージャをかけるようになりたいので、
ManegementStudioの操作性、ストアドプロシージャの知識、
両方が必要となる感じでございます。

現在ManegementStudio勉強環境にインストールして少しずつ勉強中ですが、
二次面接まで時間がないもので、どなたかに家庭教師していただけないかと思い、
失礼ながら書き込ませていただきました。

二次面接は来週早々なので、本が届くのが先か面接が先かという風になってし舞うかと思いまし手…。

どなたかお引き受けいただけませんでしょうか?
コメント2件

159
NAME IS NULL[sage]   投稿日:2016/10/28 14:29:29  ID:???.net(1523)
綴りの間違いは恥ずかしいから直して
企業様wもそういうのチェックするよ
コメント2件

160
154[]   投稿日:2016/10/28 14:42:22  ID:F5E1O/a0.net(6)
>159
失礼いたしました。
注意いたします。

161
NAME IS NULL[sage]   投稿日:2016/10/28 20:18:08  ID:???.net(1523)
>158
論理構成に難があるようだけど
二次は慎重にね。
コメント2件

162
NAME IS NULL[]   投稿日:2016/10/31 06:20:51  ID:tmLBVYkg.net(2)
SQLserber?serberって何?
コメント2件

163
NAME IS NULL[sage]   投稿日:2016/10/31 07:34:39  ID:???.net(1523)
>162
こんな簡単な間違いもくみ取れないバカは黙ってろw

164
NAME IS NULL[sage]   投稿日:2016/10/31 13:41:48  ID:???.net(1523)
その環境での開発経験が必須スキルって面接なら不合格になるべき状況だし、
そうじゃないなら環境作ることができて、足し算するだけのストアドつくれりゃあとはどうとでもなると思うよ。
コメント2件

165
154[]   投稿日:2016/11/04 10:04:18  ID:hFXlISxO.net(2)
>161
ありがとうございます。
ありのままのスキルをお話ししてきました。

>164
ありがとうございます。
ストアドはできれば尚可の条件なので必須ではないのですが、
出来てくれると嬉しいな、ということでしたので勉強しておりますが、
環境作るところまでしか進んでおりません。

本日結果が出るのでお世話になったお礼に結果はご報告させていただきます。

166
NAME IS NULL[sage]   投稿日:2016/11/07 18:39:43  ID:???.net(1523)
サブクエリを使う場合、サブクエリも範囲を絞ることで結果扱うデータ量が減って計算時間が短くなりますが、コードの可読性が悪くなります。
なにか良いアイデアはありませんか?

167
NAME IS NULL[sage]   投稿日:2016/11/07 19:12:51  ID:???.net(1523)
サブクエリを使わない
コメント2件

168
NAME IS NULL[sage]   投稿日:2016/11/07 22:54:57  ID:???.net(1523)
>167
アホは書き込まないでくれる?

169
NAME IS NULL[]   投稿日:2016/11/07 22:59:55  ID:GjWHsT4m.net(2)
サブクエリエオ使ったぐらいで「コードの可読性が悪くなります。」なんてウスラバカはそしたらここに書き込む低能

170
NAME IS NULL[sage]   投稿日:2016/11/07 23:29:01  ID:???.net(1523)
いっそプロシージャーにして見えなくしてしまったら?

171
NAME IS NULL[sage]   投稿日:2016/11/08 06:31:47  ID:???.net(1523)
関数みたいなことは出来ないの?

172
NAME IS NULL[sage]   投稿日:2016/11/08 12:30:50  ID:???.net(1523)
サブクリエリオ

173
NAME IS NULL[]   投稿日:2016/12/14 04:41:53  ID:Z9OjftC8.net(2)
よろしければ教えていただければと思います
変数名に使われるstrsplって何の略でしょうか?

どうにも気になってしまって

174
NAME IS NULL[sage]   投稿日:2016/12/14 08:17:11  ID:???.net(1523)
string split かねぇ
ggrと strsql を案内されるな

175
NAME IS NULL[sage]   投稿日:2016/12/14 16:13:54  ID:???.net(1523)
TBS

176
NAME IS NULL[sage]   投稿日:2016/12/15 17:35:03  ID:???.net(1523)
ちょっと教えて欲しいんですけど。
select * で出てくるものについて、 レコードは並び順は不定ってのは知ってるんですが、カラムの順ってのはどうなってるんですか?
create tableで定義した順?
mysqlで自分で作ったテーブルで見るとなんか定義した順みたいだけど。。。

177
NAME IS NULL[sage]   投稿日:2016/12/15 17:44:44  ID:???.net(1523)
まあこれは定義した順
でもまあそういうのが気になる状況では * あまり使わないかなあ
コメント2件

178
NAME IS NULL[sage]   投稿日:2016/12/15 19:01:53  ID:???.net(1523)
>177
ありがとです。自分で書いているのは * の時でも全部カラム名を書くようにはしているんですが。

179
NAME IS NULL[sage]   投稿日:2016/12/16 04:41:17  ID:???.net(1523)
select * で列リストが定義順でない実装は見たことがないけど
それってちゃんとSQL仕様として決まってるのか
コメント2件

180
NAME IS NULL[sage]   投稿日:2016/12/16 08:01:01  ID:???.net(1523)
>179
知らんけど決まってないと * 表記自体使えなくね?
insert もカラム指定なくても使えるし。
information_schema 見れば分かるのかな。

181
NAME IS NULL[sage]   投稿日:2016/12/17 02:25:18  ID:???.net(1523)
列リスト指定しないinsertは*とは書かないからなぁ
information_schemaで列の定義順がみれたしても、*の出力が定義順だという保証にはならないだろ

集合論として行の順番に意味がないなら、列の順番にも意味はないような気がするけど
列の順番はデータじゃなくて定義の一部だって言われたら意味があるような気もするが
コメント2件

182
NAME IS NULL[sage]   投稿日:2016/12/17 21:14:23  ID:???.net(1523)
>181
select * の順番は何かしら定義されていると思うよ。そうでないと何で select * と書くことが認められているのか分からない。

insert で列リストを省略した時も values に最初に書いた値がどの列に入るか分からなかったら、何で省略できるのさって話になる。

あと列リストは組とかタプルとかいうやつで集合じゃないでしょ。こっちは順序あるし同じ値が勝手に1つにまとめられたらチョー困る。

183
NAME IS NULL[sage]   投稿日:2016/12/24 02:14:16  ID:???.net(1523)
table1
code  comment
-----  -------------
A001  コメント1です
A002  コメント2です
A005  コメント5です


table2
name  code1  code2  code3
-----  ------  ------  ------
名前8  A003  A002  A007
名前3  A004  A003  A001
名前2  A008  A001  A005

があり、例えば特定のキーワード

keyword = '1です'

に comment が部分一致するような code を含む table2 の行を取り出したいのです。
この例では、
名前3
名前2
の行です。

事前にtable1でキーワードに一致するものを見付けてそれを含むtable2の列を探せば良いと思うのですが、
SQL初心者なのでとっかかりが分かりません。
どういう命令でやるべきなのかヒントを教えて下さい。
コメント2件

184
NAME IS NULL[sage]   投稿日:2016/12/24 04:29:21  ID:???.net(1523)
ヒントをってことなんだけど、table2からA001のコードを持つ行を取得することはできるんだろうか

185
NAME IS NULL[sage]   投稿日:2016/12/24 07:36:26  ID:???.net(1523)
Like と In でできるだろうけど、遅そう。
コメント2件

186
NAME IS NULL[sage]   投稿日:2016/12/24 09:08:19  ID:???.net(1523)
>185
そのSQLを書いて頂けませんでしょうか?

187
NAME IS NULL[sage]   投稿日:2016/12/24 09:22:17  ID:???.net(1523)
ヒントじゃねーじゃん

188
NAME IS NULL[sage]   投稿日:2016/12/24 10:30:13  ID:???.net(1523)
わらた

189
NAME IS NULL[sage]   投稿日:2016/12/24 11:03:45  ID:???.net(1523)
select t21.name
from table1 as t1
inner join table2 as t21 on t1.code = t21.code1
where t1.comment like '%1です%'
union
select t22.name
from table1 as t1
inner join table2 as t22 on t1.code = t22.code2
where t1.comment like '%1です%'
union
select
t23.name
from table1 as t1
inner join table2 as t23 on t1.code = t23.code3
where t1.comment like '%1です%'


多分↑で通るけど、もっといい模範解答求む
コメント2件

190
NAME IS NULL[sage]   投稿日:2016/12/24 12:12:04  ID:???.net(1523)
ヒント like in exists

191
NAME IS NULL[sage]   投稿日:2016/12/24 13:00:19  ID:???.net(1523)
>183
ヒント where

192
NAME IS NULL[sage]   投稿日:2016/12/24 13:13:57  ID:???.net(1523)
select name from table2 t2,
(select code from table1 where comment like '%1です%') t1
where
t2.code1 = t1.code or t2.code2 = t1.code or t2.code3 = t1.code;
コメント2件

193
NAME IS NULL[sage]   投稿日:2016/12/24 13:43:58  ID:???.net(1523)
>192
さんの方法で出来ました。
>189
さんの方法も試したのですが、うまく行きませんでした。
私のやり方が悪いのかもしれません。
皆さんありがとうございました。助かりました。

194
NAME IS NULL[sage]   投稿日:2016/12/24 14:45:42  ID:???.net(1523)
もう一つ教えて下さい。
>192さんの方式ですと出力が
name, code になりますが name のみにして distinct したいのですが
やり方が分かりません。
宜しくお願い致します。
コメント2件

195
NAME IS NULL[sage]   投稿日:2016/12/24 15:01:12  ID:???.net(1523)
>194
その通りやってますか?
select文に指定している name しか表示しないはずですけど

先頭行に distinct 加えれば重複している name は消えます。
select distinct name from table2 t2,
コメント2件

196
NAME IS NULL[]   投稿日:2016/12/25 01:34:13  ID:G9kEUO4A.net(4)
csvからphpmyadminでインポートしてるんだけど途中で止まってしまう
7000行くらいのデータが3000ちょいで切れて、その後継ぎ足しても10行程でまた切れる
あんまりsql関係ないけど原因わかる人いたら教えて
ちなみにxampp
コメント2件

197
NAME IS NULL[sage]   投稿日:2016/12/25 02:16:42  ID:???.net(1523)
>195
勘違いでした。
select * ...
としていました。
うまく行きました。
ちなみに>192のような
selectの中に(select ... )があるのは何ていう方式なのでしょうか?
ググルためのキーワードを教えて下さい。

198
NAME IS NULL[sage]   投稿日:2016/12/25 02:22:28  ID:???.net(1523)
えっ、データベースの板に来るくらいなら、いくらなんでもサブクエリという名前くらい知っとけよ
コメント2件

199
NAME IS NULL[sage]   投稿日:2016/12/25 12:45:10  ID:???.net(1523)
>198
ありがとうございました。
サブクエリ、初めて耳にしました。難しいです。
一時テーブル(#テーブル)と言うやつとは違うんですか?

200
NAME IS NULL[sage]   投稿日:2016/12/25 13:04:03  ID:???.net(1523)
一応ここは初心者スレって名前ついているし
ベテランから見たら知ってて当たり前と思う質問でも
優しく回答してやれよ

201
NAME IS NULL[]   投稿日:2016/12/25 13:37:54  ID:GwZs/74I.net(2)
>196

php文字化けとかめんどくさいから
.Netとかでそういうのやってる

202
NAME IS NULL[]   投稿日:2016/12/25 23:40:17  ID:G9kEUO4A.net(4)
195だが
エラー行から改めて入れて、エラー行から改めて入れて
何回かやったら全部入ったわ
原因はわからん
なんやら文字コード的なエラーメッセージだった気がする

203
NAME IS NULL[]   投稿日:2016/12/26 11:14:14  ID:fjjmXLRb.net(2)

204
NAME IS NULL[]   投稿日:2016/12/26 17:20:52  ID:5PC6tP3J.net(2)
DBに突っ込んだデータに対してちょっと込み入った操作をしたいとき、
例えば、「ORDER BY id ASC した状態で、前の行と比較して DATA の値が2以上離れてる行が3行以上続く」ケースを抜き出したいとき、
一般的に (個人的にでもいいです) どんなやり方が最も望ましいんでしょうか?

全行ガサッと取ってきてプログラム側でせこせこ判定していく以外思いつけなくて、これでいいのか不安です
コメント8件

205
NAME IS NULL[sage]   投稿日:2016/12/26 18:47:08  ID:???.net(1523)
>204
SQLや処理系ごとの拡張で頑張るとか
ストアドで処理するとか

それだけではどの方法が最善かはわからん

206
NAME IS NULL[sage]   投稿日:2016/12/26 18:52:31  ID:???.net(1523)
>204
実現できる方法でやる。
結果が問題なければ
そもそも何を不安に思う?
それは何故よ?

207
NAME IS NULL[sage]   投稿日:2016/12/26 19:34:01  ID:???.net(1523)
>204
window関数

208
NAME IS NULL[sage]   投稿日:2016/12/26 20:24:10  ID:???.net(1523)
日本終了

ーーーーーーーーーーーーーーーーー
 22日からの大雪で航空機が相次いで欠航となった北海道の新千歳空港で、24日夜、100人あまりの中国人が抗議し激しく詰め寄る騒ぎがあった。

209
NAME IS NULL[sage]   投稿日:2016/12/26 22:19:59  ID:???.net(1523)
>204
window関数のlagを使った例

select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;

210
NAME IS NULL[sage]   投稿日:2016/12/26 22:22:29  ID:???.net(1523)
select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;

211
NAME IS NULL[sage]   投稿日:2017/01/02 16:54:20  ID:???.net(1523)
教えて下さい。
カラムが
code,:index
name:名前
date_from:始めの日付 2017/1/1
date_to:終わりの日付 2017/1/3
days:差分 2
というレコードが1つあった場合に

2017/1/1 index 名前
2017/1/2 index 名前
2017/1/3 index 名前

という風に出力するSQL文を教えて下さい。
ちなみに postgresql です。
コメント4件

212
NAME IS NULL[sage]   投稿日:2017/01/02 17:15:10  ID:???.net(1523)
>days:差分 2

このカラムの意味が分からない
コメント4件

213
NAME IS NULL[sage]   投稿日:2017/01/02 20:22:33  ID:???.net(1523)
質問させていただきます。

2017-01-01 01:00:00
2017-01-02 01:00:00
2017-01-03 01:00:00
2017-01-04 01:00:00
といったdatetime型(Y-m-d H:i:s)のレコードdtimeを持つt1テーブルと
2017-01-02
2017-01-03
といったdate型(Y-m-d)のレコードdateを持つt2テーブルがあります。

t1テーブルのdtimeからt2テーブルのdateと日付(Y-m-d)部分が一致しないレコードを取り出すにはどのような記述をすれば良いでしょうか
この例の場合はdateにある2,3日のレコードを省いて1,4日のレコードのみを取り出したいです。
コメント4件

214
NAME IS NULL[sage]   投稿日:2017/01/02 20:37:55  ID:???.net(1523)
>211
365行のテンポラリテーブルを用意してうんぬん
コメント2件

215
NAME IS NULL[sage]   投稿日:2017/01/02 20:39:30  ID:???.net(1523)
>213
標準SQLの範囲じゃないような気もするけど、
DateTime型からDateだけ取り出す関数があるだろうからそれを使う。
コメント2件

216
NAME IS NULL[sage]   投稿日:2017/01/02 21:38:43  ID:???.net(1523)
>211
Select date_from + g.gs as 日付
, code1,name
From Test1 t
,(
  select generate_series(0,10) as gs
) g
Where g.gs <= t.days;


でも>212が言うようにdaysは演算で処理すべきだべ

217
NAME IS NULL[sage]   投稿日:2017/01/02 21:45:28  ID:???.net(1523)
>213
mysql と仮定して
select dtime from t1 where
date(dtime) not in (select date from t2);
コメント2件

218
NAME IS NULL[sage]   投稿日:2017/01/03 09:50:33  ID:???.net(1523)
>214,216
できました。ありがとうございました。

>212
テーブル設計自体はすでにあったものでして…

219
NAME IS NULL[sage]   投稿日:2017/01/03 10:39:07  ID:???.net(1523)
>215
>217
できました、ありがとうございました。
datetimeをdateに置き換える簡単な方法があったんですね。

220
NAME IS NULL[sage]   投稿日:2017/01/14 10:16:41  ID:???.net(1523)
phpmyadminでデータベースを作成しようと思ったのですがSQLタブのテキストエリアにコピペができません(右クリックしてもコピー、切り取り、貼り付けがでない)
コピペをするのに設定などがあるのでしょうか?

221
NAME IS NULL[]   投稿日:2017/01/14 10:36:37  ID:NxfK13Qk.net(2)
MySQLの質問させてください
データ更新するとき、phpmyadminのインポートで更新するには、sqlのファイルはどのように書けばいいのでしょうか?

新規作成するときは、INSERT文でこんな風にしました
上書きするときの書き方があれば教えてください
INSERT INTO `sample_table` (`abc_id`, `efg_id`, `meta_key`, `meta_value`) VALUES
(202, 4002, '_thumbnail_id', '4001'),
(212, 4012, '_thumbnail_id', '4011'),
(222, 4022, '_thumbnail_id', '4021');
コメント2件

222
NAME IS NULL[sage]   投稿日:2017/01/14 12:04:14  ID:???.net(1523)
外部結合クエリで
・A LEFT JOIN B
・B RIGHT JOIN A

これらは全く同じものではなく、結果が異なる場合があるので
外部結合は左のみ使うべしってどこかのサイトで見た記憶がある
どなたかそのカラクリを知っていたら教えて
コメント4件

223
NAME IS NULL[sage]   投稿日:2017/01/14 18:06:07  ID:???.net(1523)
>222
俺の中ではそんな事ないから答えられない

224
名無しさん[]   投稿日:2017/01/14 18:09:24  ID:/fuRSrl8.net(2)
無料誹謗中傷対策のブッダワークス
http://www.buddha-works.net

225
NAME IS NULL[sage]   投稿日:2017/01/14 20:16:43  ID:???.net(1523)
>222
見たサイトの運営者に聞け

226
NAME IS NULL[sage]   投稿日:2017/01/14 21:05:14  ID:???.net(1523)
>221

insertでするなら on duplicate key update
又は replaceでというのも

それぞれについて説明をちゃんと読んでから使ってね
コメント2件

227
NAME IS NULL[sage]   投稿日:2017/01/15 22:54:38  ID:???.net(1523)
>226
ありがとうございます!
確認して使ってみます

228
NAME IS NULL[]   投稿日:2017/01/16 18:03:02  ID:tiD/G6HX.net(2)

229
NAME IS NULL[sage]   投稿日:2017/01/19 06:50:34  ID:???.net(1523)
DISTINCT がキーボードで打ちづらいです

230
NAME IS NULL[sage]   投稿日:2017/01/19 12:41:28  ID:???.net(1523)
そんなあなたにオススメDvorak配列キーボード

231
NAME IS NULL[sage]   投稿日:2017/01/19 18:01:27  ID:???.net(1523)
ユーザー登録ありのシステムを組むにあたってユーザーが2種類いる場合
テーブルは分けるべきでしょうか?

例えば、Amazon マーケットプレイスのような
販売ユーザーと購入ユーザーの2種類のユーザーが存在する
このような場合のテーブル設計についてご教示いただけると有り難いです。

スレ違いでしたらすいません。
コメント2件

232
NAME IS NULL[sage]   投稿日:2017/01/19 18:18:15  ID:???.net(1523)
>231
DB設計を語るスレ 9
コメント2件

233
NAME IS NULL[sage]   投稿日:2017/01/19 18:56:48  ID:???.net(1523)
>232
スレ違いでしたねすいません
スレを教えていただきありがとうございます。

234
NAME IS NULL[]   投稿日:2017/01/24 21:51:15  ID:oe0NRhg4.net(2)
何もしていない普通の一般人の自宅に隠しカメラを取り付け
それをネットでリアルタイム配信

仲間という人間に対する盗聴盗撮生ネット配信の会

しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる

そんなことが今この国では行われています

仄めかしの隠語は
猫 穴 水 仲間 

235
NAME IS NULL[]   投稿日:2017/01/26 14:18:16  ID:73KKygNS.net(2)

236
NAME IS NULL[]   投稿日:2017/01/28 12:44:07  ID:T1kC9Cn+.net(2)

237
NAME IS NULL[sage]   投稿日:2017/01/31 13:26:45  ID:???.net(1523)
selectで取得するカラムにAUTO_INCREMENTを指定する方法はありませんか
コメント4件

238
NAME IS NULL[sage]   投稿日:2017/01/31 17:11:46  ID:???.net(1523)
>237
取得したレコードに連番を付けたいなら方法はある
もしそうなら、これ以降は自分が使っているデータベーススレに移動しろ
コメント2件

239
NAME IS NULL[sage]   投稿日:2017/02/01 19:11:49  ID:???.net(1523)
>237
開始番号はどうやって決めるの?
コメント2件

240
NAME IS NULL[sage]   投稿日:2017/02/02 07:10:22  ID:???.net(1523)
普通は1からだろ100からとか別でも足せばいい

241
NAME IS NULL[sage]   投稿日:2017/02/06 16:33:18  ID:???.net(1523)
>238
どのDBでも大差ないだろ・・・
と思って実験したらmysqlとoracleとpostgresとsqliteで全部やり方違うのな
ちょっと面白かった

242
NAME IS NULL[]   投稿日:2017/02/08 00:06:58  ID:wCjGsKbG.net(2)
>239
フェッチした順に普通は1から振られる。

243
NAME IS NULL[sage]   投稿日:2017/02/08 23:19:57  ID:???.net(1523)
質問させて頂きます

社員IDひとつに対して10行の権限管理レコードが必要です
これを500人分ひとつのテーブルに追加します

レコード例

社員ID, 画面ID, 閲覧, 編集, 削除, …
00000, W001, true, false, false, …
00000, W002, true, true, true, …

00000, W010, false, false, false, …

権限管理10行のテンプレと追加したい社員IDのリストはあります
SQL Management StudioかAccessを用いて作業したいのですが、この道具をどのように活かしてクエリを書けばいいのか思い浮かばなかったので質問させて頂きました
アドバイスよろしくお願いします
コメント8件

244
NAME IS NULL[]   投稿日:2017/02/09 01:15:59  ID:I+KHRssK.net(4)
>243
絞り込み条件が社員IDと画面IDなんだろ?
何がやりたいのか書いてくれ。
コメント2件

245
NAME IS NULL[sage]   投稿日:2017/02/09 07:12:02  ID:???.net(1523)
>243
手作業多めでいいなら
1 適当なエディタでカンマをタブに変換
2 excelを開いてシート全体を文字列に設定
3 1をシートに貼り付け
4 テーブルとおなじ列に加工
5 accessのテーブルに貼り付け
まあinsert文に加工して実行でもいいかもね
コメント4件

246
NAME IS NULL[]   投稿日:2017/02/09 09:16:23  ID:I+KHRssK.net(4)
>245
どう読んだらCSVファイルの取り込みと解釈できるのか?

247
NAME IS NULL[sage]   投稿日:2017/02/09 12:27:52  ID:???.net(1523)
>244-246
レスありがとうございます

今回は>245さんのアドバイスを元に
社員IDと画面IDのテンプレを二重ループで合体させてテキストに出力した5000行を
テキストエディタとExcelで整形してAccessに貼り付けて追加しました

248
NAME IS NULL[sage]   投稿日:2017/02/09 12:36:20  ID:???.net(1523)
馬鹿がよく分からん絡み方してるw

249
NAME IS NULL[sage]   投稿日:2017/02/09 18:13:26  ID:???.net(1523)
言語の設定ってインストールするときに指定する仕様なんですか?
何も指定しないと勝手にユニコードになると思っていたのですが
コメント2件

250
NAME IS NULL[sage]   投稿日:2017/02/09 18:16:49  ID:???.net(1523)
>249
自分が使っているデータベーススレに移動して、疑問に思っていることをもっと具体的に聞け
コメント2件

251
NAME IS NULL[sage]   投稿日:2017/02/09 18:30:19  ID:???.net(1523)
>250
移動します
SQLServer2012なんだけど
俺もよくわかってない

252
NAME IS NULL[sage]   投稿日:2017/02/09 22:23:19  ID:???.net(1523)
>243
insert ... select ... from 権限管理10行のテンプレ (innnerとかcrossとか)join 追加したい社員IDのリスト
で行けるんじゃないのか
もうエクセル整形でやったのならそれでいいけど
コメント2件

253
NAME IS NULL[sage]   投稿日:2017/02/09 22:32:25  ID:???.net(1523)
何をやろうとしているかは大体想像できるんだが、
こういう仕組みを実装する時って、
個人単位で権限を操作するのかな?
新しい機能が追加される度に、全てのユーザーに
権限の可否を設定しないといけなくならないか?
コメント2件

254
NAME IS NULL[]   投稿日:2017/02/10 00:54:29  ID:UY3eO74e.net(2)
>253
ロール

255
NAME IS NULL[sage]   投稿日:2017/02/10 03:00:09  ID:???.net(1523)
>252
自分も「これは直積(cross join)でやるかな」と思ったんだけど
直積って実用上はあんまり出てこないんだよな
(SQLの考え方としてはとても重要だと思うのだけど)
それを初心者スレで勧めていいものかと躊躇ってしまった

256
NAME IS NULL[sage]   投稿日:2017/02/10 06:43:28  ID:???.net(1523)
244書いたの俺だけどリストって書いてあったから
深く考えずにテキストファイルかなんかだと思ったわ
騒がせてすまんね

257
NAME IS NULL[sage]   投稿日:2017/02/10 08:29:16  ID:???.net(1523)
>243
要件にもよるかも知らんが事前に全部追加せんでいい方向もある。
ユーザーテーブルとの乖離にどう対処するか面倒だし。
ユーザーテーブルがなかったら、うん、まぁ、うん。

258
NAME IS NULL[sage]   投稿日:2017/02/15 17:17:09  ID:???.net(1523)
超初心者です。
ユーザーごとに掲示板を作る場合
例えば
boardsというテーブルを作って、すべての掲示板の書き込みをそこで管理するのがいいのか、
それともユーザーごとに001boardsみたいにテーブルを作って管理するのがいいのでしょうか?
一元管理の場合、書き込み数が多くなった場合に処理が遅くなるなどの、問題点はないでしょうか?

アドバイスをよろしくおねがいします<(_ _)>
コメント4件

259
NAME IS NULL[]   投稿日:2017/02/15 17:33:15  ID:IlwZKpGL.net(2)
>258
ユーザーごとにテーブルを作るのは管理がたいへんだろ。性能の問題はかなりのデータ量でないかぎりは問題ないと思っていい。
コメント2件

260
NAME IS NULL[sage]   投稿日:2017/02/15 17:53:19  ID:???.net(1523)
>259
一元管理で設計してみたいと思います。
アドバイスありがとうございました。

261
NAME IS NULL[sage]   投稿日:2017/02/15 23:57:28  ID:???.net(1523)
>258
ユーザーごとだろ普通
コメント4件

262
NAME IS NULL[sage]   投稿日:2017/02/16 01:27:11  ID:???.net(1523)
>261
ユーザーごとだとして、
例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

この場合レンタルサーバーなのでsqlite3を使うことになると思います
(Mysqlはテーブル数の制限がある)
コメント4件

263
NAME IS NULL[sage]   投稿日:2017/02/16 01:33:57  ID:???.net(1523)
>261
アホか

264
NAME IS NULL[sage]   投稿日:2017/02/16 01:39:58  ID:???.net(1523)
レンタルサーバー運営、やろうってこと?

265
NAME IS NULL[sage]   投稿日:2017/02/16 01:45:38  ID:???.net(1523)
レンタルサーバーでサイトを作るだけです
そこでユーザー登録をして、ユーザーごとに専用の掲示板を建てるイメージです

266
NAME IS NULL[sage]   投稿日:2017/02/16 01:51:19  ID:???.net(1523)
その程度なら一つのテーブルで良いと思うけど
不具合あると、隣のユーザーの掲示板が覗けるとかあるかもね
コメント2件

267
NAME IS NULL[sage]   投稿日:2017/02/16 02:04:14  ID:???.net(1523)
>266
アドバイスありがとうございます。

268
NAME IS NULL[sage]   投稿日:2017/02/16 07:12:43  ID:???.net(1523)
ユーザー退会したらデータどうすんの?
破棄するならテーブル別がらくじゃね
同一テーブルだと日次で深夜にでも削除実行するんか
コメント2件

269
NAME IS NULL[sage]   投稿日:2017/02/16 07:20:00  ID:???.net(1523)
また削除フラグの話にw

270
NAME IS NULL[sage]   投稿日:2017/02/16 07:42:42  ID:???.net(1523)
盛り上ってまいりましたw

271
NAME IS NULL[sage]   投稿日:2017/02/16 07:47:37  ID:???.net(1523)
>262
なおさら別テーブルだね
コメント2件

272
NAME IS NULL[sage]   投稿日:2017/02/16 12:00:10  ID:???.net(1523)
>268
>271
頭湧いてんな
コメント2件

273
NAME IS NULL[sage]   投稿日:2017/02/16 12:05:27  ID:???.net(1523)
>272
sqliteで複数ユーザーが
同一テーブルにアクセス、

まだわからないかなw

274
NAME IS NULL[sage]   投稿日:2017/02/16 15:04:33  ID:???.net(1523)
>262
> (Mysqlはテーブル数の制限がある)
どこ情報かしらないが、普通は制限はないよ

また、仮にsqlite3を使うとしたとき、重大な問題が別に発生する
それは、誰かが書き込みをするとファイルがロックするということ
要件的にそれで大丈夫かどうかは熟考する必要がある

逆にMySQLを使う場合でもユーザ単位でテーブルを分割する場合もある(ユーザIDによる水平分割)
ソシャゲ界隈では良くあること
これも、要件と相談してからだな

275
273[sage]   投稿日:2017/02/16 15:10:47  ID:???.net(1523)
あ、テーブル数の制限って、レンタルサーバだからなのか
なるほどねー

276
NAME IS NULL[sage]   投稿日:2017/02/16 16:32:37  ID:???.net(1523)
まあこのまま続けてたら半年後にはなんでこんなバカな質問したんだろうと思うこと請け合い

277
NAME IS NULL[sage]   投稿日:2017/02/16 16:51:32  ID:???.net(1523)
ユーザ数が1万人を超えるようなサービスを、MySQLのテーブル数が制限されるようなゴミレンサバで実行するなんて・・・

すごーい(別の意味で)
コメント2件

278
NAME IS NULL[sage]   投稿日:2017/02/16 17:08:18  ID:???.net(1523)
金取るシステムとは思えん
無料サービスだろ
エラーが発生してもデータが壊れても、すいませんテヘで済むような奴

279
NAME IS NULL[sage]   投稿日:2017/02/16 21:27:52  ID:???.net(1523)
>277
例えばな
たーとーえーばーww
コメント4件

280
NAME IS NULL[sage]   投稿日:2017/02/16 21:34:17  ID:???.net(1523)
>279
君がいるだーけーでー

281
NAME IS NULL[sage]   投稿日:2017/02/16 22:26:13  ID:???.net(1523)
盛り下がってまいりました、、、

282
NAME IS NULL[sage]   投稿日:2017/02/16 22:44:43  ID:???.net(1523)
会員数1万人のWebベースのサービスやりたいんだったら、SQLがどうのではなく、
それなりの通信環境、ハードウエア、システム要員を用意しないと駄目だろう
コメント2件

283
NAME IS NULL[sage]   投稿日:2017/02/17 07:10:18  ID:???.net(1523)
そもそもこんなところで質問するようなやつなんだから
訳分からず質問してるだけだろ
察して遊んでやれよ

284
NAME IS NULL[sage]   投稿日:2017/02/17 09:29:17  ID:???.net(1523)

285
NAME IS NULL[sage]   投稿日:2017/02/17 09:51:42  ID:???.net(1523)
>例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

要求仕様じゃないかな?

286
NAME IS NULL[sage]   投稿日:2017/02/17 17:25:57  ID:???.net(1523)
テーブル名をフラグに使ったことならあるよ
テーブルがオープンできない=それは未使用

当時はみな気がくるっていた

287
NAME IS NULL[sage]   投稿日:2017/02/23 21:19:47  ID:???.net(1523)
これからSQL勉強する者です
独学で本を参考にするつもりですが、まずSQLでデータベースから抽出できます、といえる程度になるにはどのくらいの期間見込めばいいでしょうか?
コメント2件

288
NAME IS NULL[sage]   投稿日:2017/02/23 21:40:13  ID:???.net(1523)
30分

289
NAME IS NULL[sage]   投稿日:2017/02/23 21:40:25  ID:???.net(1523)
抽出だけなら、5分も掛からないんじゃないか?

290
NAME IS NULL[sage]   投稿日:2017/02/23 22:36:11  ID:???.net(1523)
本を買いにいく時間がある

291
NAME IS NULL[sage]   投稿日:2017/02/23 22:43:24  ID:???.net(1523)
いや真面目に・・3ヶ月くらいだろうか?ととりあえず予測を立てたのですが・・
実務でできないのが痛いところなのですが
コメント4件

292
NAME IS NULL[sage]   投稿日:2017/02/23 22:47:49  ID:???.net(1523)
何をインストールするのか知らんけど、つまずく奴はRDBを自分のPCにインストールするとこからつまずくからなw
あれこれやる前から考えてもしょーがない。自分でコマンドをどんどん入れてみるこったよw
コメント2件

293
NAME IS NULL[sage]   投稿日:2017/02/23 22:50:45  ID:???.net(1523)
>287
七分

294
NAME IS NULL[sage]   投稿日:2017/02/23 22:52:18  ID:???.net(1523)
>291
そこ期間の内訳出してみ

295
NAME IS NULL[sage]   投稿日:2017/02/23 22:54:07  ID:???.net(1523)
君がPCを所有していて、OSが入っていて、ネットに接続できているなら
適当なSQLをダウンロードしてインストールすれば
勉強は今すぐにでも開始できそうなんだが
コメント2件

296
NAME IS NULL[sage]   投稿日:2017/02/23 22:55:54  ID:???.net(1523)
>291
あんたの才能とやる気次第としか言えない
SQLはかなり癖のある言語だから、ダメな人は1分で本を閉じて終わり

297
NAME IS NULL[sage]   投稿日:2017/02/23 22:58:52  ID:???.net(1523)
>292
MySQL
能書きいうよりまずやることは経験済み納得だが、今後の方向づけを検討しての質問だった

298
NAME IS NULL[sage]   投稿日:2017/02/23 23:01:31  ID:???.net(1523)
>295
そうなんですよ
いまうちmacしかも壊れた・・(へぼくてすまん)
つうことでうちは会社があまりダウンロードとかうるさくないのですが、
会社のwinマシンに落とすことを目論み中ですが、会社PCに個人で落としてる人いますか?

299
NAME IS NULL[sage]   投稿日:2017/02/23 23:27:33  ID:???.net(1523)
それはここで聞かずに、上司に聞くべきことだろ
ちゃんと理由を説明して、何をインストールしたいか説明し
それが仕事で必要なことだとなればインストール可能じゃないのかな?

君の会社での役割が管理者で、PCの設定に関して権限があるなら、聞かなくてもいいだろうけど

300
NAME IS NULL[sage]   投稿日:2017/02/23 23:34:32  ID:???.net(1523)
やはりこっそりはまずいか…
実務じゃ必要ないって言われるのが関の山だ
だってうちの上司ろくに関数もわからないお馬鹿…なんでもマッチョに力技が得意技なもんで
なくせに色々要求してくる
んでそんなとこを抜け出すためのSQL習得なのです
Winマシンを大人しく速攻買おう
つうことで安いの探すとこから始めます
Dellあたりかなー できたらVAIO

301
NAME IS NULL[sage]   投稿日:2017/02/24 05:16:28  ID:???.net(1523)
けっこうまじめに質問したんだけどやっぱ2ちゃんだな
冷やかしだけで答えてはもらえないか
ま、いいやとっととやるから
コメント6件

302
NAME IS NULL[sage]   投稿日:2017/02/24 07:04:10  ID:???.net(1523)
>301
ガンバレ

303
NAME IS NULL[sage]   投稿日:2017/02/24 08:44:57  ID:???.net(1523)
真面目に回答しても冷やかしとしか受け取って貰えない w

304
NAME IS NULL[sage]   投稿日:2017/02/24 09:11:23  ID:???.net(1523)
>301
だいぶ抽象的で、何に役立つのか
分かりにくい質問だったことは
覚えておいて。

305
NAME IS NULL[sage]   投稿日:2017/02/24 10:00:29  ID:???.net(1523)
DB板は、おふざけな質問でない限りマトモに答えてくれるよ

306
NAME IS NULL[sage]   投稿日:2017/02/24 11:03:39  ID:???.net(1523)
SQLでデータを抽出する基本だけなら、みんな言うように1日でできるぞ
select文流すだけだからな

問題は、SQLを発行する方法とそのための環境の構築が難しいだけで
コメント2件

307
NAME IS NULL[sage]   投稿日:2017/02/24 12:02:44  ID:???.net(1523)
>301
また聞きにおいで

308
NAME IS NULL[]   投稿日:2017/02/24 18:58:00  ID:U+kKk5Yi.net(2)
>306
基本ってなんだよ?
コメント2件

309
NAME IS NULL[sage]   投稿日:2017/02/24 20:33:06  ID:???.net(1523)
>308
select hello from world

310
NAME IS NULL[]   投稿日:2017/02/24 20:52:10  ID:dYCyIIDS.net(2)
まず初心者には結合が1日で理解できるかどうか。

311
NAME IS NULL[sage]   投稿日:2017/02/24 21:09:40  ID:???.net(1523)
批判も応援する言葉もどちらもありがとう

290で3ヶ月と言ったのは、会社のちょっとデータ詳しいちょー意地悪なおっさん(でも非エンジニアで営業部のデータ取りまとめしてる程度)に
SQL独学で3ヶ月でてきて当たり前、オレは3ヶ月で覚えた、と言われて

もちろんそれはマウントしたいだけだからどの辺りまでかなんて言わないしこっちも聞かない

だから漠然とした答えに困るような素人くさい愚問なアホな質問とわかっていたんだけど、
とりあえずの導入としてはどのくらい見ればいいかな、と知りたくなってしまって

だから答えてくれた時間とかはその通りでもあるし、その限りでないこともわかってる

そのおっさんは独学で覚えたのが自慢で、でもそのおっさんがExcelで作ったものはちょっとした普通の作業が汚い

SEの人と一緒に働いたとき当たり前のことをちゃん綺麗に整えて作るからとても感心した

そんななんやかやがあり
スレ違いになり申し訳ない

Hello world

312
NAME IS NULL[sage]   投稿日:2017/02/24 23:02:19  ID:???.net(1523)
本日、postgresqlをDB2に替えたらwebアプリが動かなくなったわ。
もう逃げたい。俺のせいじゃないけど。

313
NAME IS NULL[sage]   投稿日:2017/02/25 00:22:52  ID:???.net(1523)
テストもせずにいきなり入れ替えたのかよ
そんなことができる現場、逆にすごい楽しそうだな

314
NAME IS NULL[sage]   投稿日:2017/02/25 20:49:52  ID:???.net(1523)
SQL言語ってオラクルとかMysqlとか、MSで違うんですか?

315
NAME IS NULL[sage]   投稿日:2017/02/25 20:58:21  ID:???.net(1523)
基本は同じ
それぞれ拡張している部分がある

316
NAME IS NULL[sage]   投稿日:2017/02/25 21:38:20  ID:???.net(1523)
要するに、違う。

317
NAME IS NULL[sage]   投稿日:2017/02/25 22:09:37  ID:???.net(1523)
SQLとMySQLって違うの?
でSQLがあってのOracle?
コメント2件

318
NAME IS NULL[sage]   投稿日:2017/02/25 22:27:30  ID:???.net(1523)
ここでそんな質問する前に本の1冊でも読めよ

319
NAME IS NULL[sage]   投稿日:2017/02/25 23:02:52  ID:???.net(1523)
>317
単語それぞれでググってみればわかる
MySQLとOracleはデータベースソフトウェア製品の名前
SQLはそれらで共通に使われている(ただし方言あり)言語の名前

320
NAME IS NULL[sage]   投稿日:2017/02/25 23:11:02  ID:???.net(1523)
そんくらいわかってるわ

321
NAME IS NULL[sage]   投稿日:2017/02/25 23:40:52  ID:???.net(1523)
誰が質問者か分からなくなってきた

質問者はsageをせずに書き込むと良いですよ
そうすれば、ID表示でますから

322
NAME IS NULL[]   投稿日:2017/02/26 14:45:56  ID:LVGuIyS4.net(2)
SQL ServerとMySQLを単にSQLと略す馬鹿がいるので混乱する。
コメント2件

323
NAME IS NULL[sage]   投稿日:2017/02/26 14:52:17  ID:???.net(1523)
>322
それだ

324
NAME IS NULL[sage]   投稿日:2017/02/26 16:08:09  ID:???.net(1523)
初めてダウンロード
PostegerSQLとMySQLどちらがいいだろうか?

325
NAME IS NULL[sage]   投稿日:2017/02/26 16:09:23  ID:???.net(1523)
両方入れとけ
管理方法が違うのでコンソールまたはツールで馴染んだほう残せばいい
コメント4件

326
NAME IS NULL[sage]   投稿日:2017/02/26 16:21:31  ID:???.net(1523)
ツール使うなら、両者ともそれほど違いはなかったと思う
コンソールだと、違いがあるから慣れるまで時間掛かりそう
コメント2件

327
NAME IS NULL[sage]   投稿日:2017/02/26 16:30:27  ID:???.net(1523)
>325
おけ
両方入れる

>326
んーよくわからず、まだ先のことだろうから後で考えるわ

328
NAME IS NULL[sage]   投稿日:2017/02/26 16:31:06  ID:???.net(1523)
>325,326
ありがとです

329
NAME IS NULL[sage]   投稿日:2017/02/28 12:15:15  ID:???.net(1523)
SQLを触ったことないんですが、クエリ文を覚えるためにはどうすればいいでしょうか?
C#という言語でLINQというものは触ったことあるのでまったくわからないとは思わないのですが・・・
コメント6件

330
NAME IS NULL[sage]   投稿日:2017/02/28 13:53:34  ID:???.net(1523)
>329
普通の人は、本買って読むんだけど・・・

331
NAME IS NULL[sage]   投稿日:2017/02/28 14:01:20  ID:???.net(1523)
とりあえず環境を用意する

332
NAME IS NULL[sage]   投稿日:2017/02/28 18:25:09  ID:???.net(1523)
SQL試す環境つくればいいよ、上にあるMySQLやPostgreSQLをローカルに入れて
PgAdmin3とかMySQL Workbenchとか動かしてみては
SQLite3でも試せるけどね

333
NAME IS NULL[]   投稿日:2017/02/28 19:39:01  ID:jzPtOTcH.net(2)
>329
SQLとクエリと言ってる時点でおかしい。たぶんSQL Serverが前提なんだろうな。

334
NAME IS NULL[]   投稿日:2017/02/28 20:04:26  ID:yUIIsXa+.net(2)
sql serverが前提だとなんか困るのかな

335
NAME IS NULL[sage]   投稿日:2017/02/28 21:21:44  ID:???.net(1523)
職場でAccessって使う人少ないですか?
コメント4件

336
NAME IS NULL[sage]   投稿日:2017/02/28 21:58:28  ID:???.net(1523)
>335
質問の意図がわからない
それをここで俺らに聞いて何をしようというのだ?

337
NAME IS NULL[sage]   投稿日:2017/02/28 22:07:13  ID:???.net(1523)
>335
えっ!?!?
いやいや普通もれなく全員清掃係りの人も警備の人も使うでしょ
おたく使ってないの???

338
NAME IS NULL[sage]   投稿日:2017/02/28 23:17:08  ID:???.net(1523)
使ったt事あるよ。で、それがどうした。

339
NAME IS NULL[sage]   投稿日:2017/03/01 02:02:24  ID:???.net(1523)
accessは帳票必要なシステムでは楽チンだけど
帳票なかったらphpのほうが楽チンだな

340
NAME IS NULL[sage]   投稿日:2017/03/01 07:11:22  ID:???.net(1523)
>329
業務で使うsqlのパターン は限られてるから
初心者向けの本を買えばいいと思うよ

341
NAME IS NULL[sage]   投稿日:2017/03/01 12:20:17  ID:???.net(1523)
業務で使わないsqlは多種多様なのか?違いが分からん
コメント2件

342
NAME IS NULL[sage]   投稿日:2017/03/01 12:40:46  ID:???.net(1523)
>341
そうだよ
違うよ

343
NAME IS NULL[sage]   投稿日:2017/03/01 15:57:14  ID:???.net(1523)
DB自体の操作やユーザー管理も含めて言っているのじゃないかな?

344
NAME IS NULL[sage]   投稿日:2017/03/01 18:47:02  ID:???.net(1523)
業務で使う時は特殊な記述を避けるというだけの話かと

345
NAME IS NULL[sage]   投稿日:2017/03/01 20:05:39  ID:???.net(1523)
sqlに特殊な記述なんてあったか?

346
NAME IS NULL[sage]   投稿日:2017/03/02 03:01:35  ID:???.net(1523)
顧客id 顧客名
取引id 顧客id 取引額 取引日

こんな2つの顧客テーブルと取引テーブルがあるとします。
取引テーブルの取引日と顧客idはUNIQUEな関係です(同じ日の再度の取引はない)。
ある顧客との、ある期間中どれだけ取引があったか(回数と総額)の計算をしたいです。

顧客テーブル
  顧客id INT PK
  顧客名 VARCHAR NN

取引テーブル
  取引id INT PK
  顧客id INT FK
  取引額 INT NN
  取引日 DATE NN
  UNIQUE (顧客id, 取引日)

インデックスを貼るべきところとかよくわからないのですが、テーブルはこんな感じでいいのでしょうか?
検索(WHERE)に取引日を使うので、取引日にもインデックス貼ったほうがいいのでしょうか?
あと取引日のDATE型なんですが、UNIXTIMEのようにある日からの起算のほうが検索早そうなのでINTにしたほうがいいですか?
コメント2件

347
NAME IS NULL[sage]   投稿日:2017/03/02 06:14:34  ID:???.net(1523)
>取引日にもインデックス貼ったほうがいいのでしょうか?

それで検索をよくするんだったら良いんじゃないの。自分は株価テーブル作っててPKが(コード、出来高年月日)なんだけど、
出来高年月日での検索もするんでその出来高年月日にindex貼ったら実行スピードめちゃ上がったし
コメント2件

348
NAME IS NULL[sage]   投稿日:2017/03/02 14:18:17  ID:???.net(1523)
>346
DATE型使っても、内部表現はバイナリー値だから実行スピードは変わらないだろう
コメント2件

349
345[sage]   投稿日:2017/03/03 05:48:15  ID:???.net(1523)
>347-348
レスありがとうございます。
実例での効果まであげていただいて感謝です。
DATA型でも検索速度は変わらないとのことなので、
このままでCREATEしたいと思います。
コメント2件

350
NAME IS NULL[sage]   投稿日:2017/03/03 09:25:17  ID:???.net(1523)
>349
なぜそう結論できる?

351
NAME IS NULL[sage]   投稿日:2017/03/03 12:26:59  ID:???.net(1523)
当たり屋かよw

352
NAME IS NULL[sage]   投稿日:2017/03/03 17:39:50  ID:???.net(1523)
(DATA型は)このままでってことだろう

353
NAME IS NULL[]   投稿日:2017/03/04 06:08:32  ID:GZ+afmPr.net(2)
RDBMSの内部構造を意識するのが初心者なのかと。

354
NAME IS NULL[sage]   投稿日:2017/03/04 07:48:26  ID:???.net(1523)
まあプログラムやってればその辺はちょっとは検討つくでしょう
JavaScriptみたいのしかやったことないとかだとDBいじる機会もなかなかないだろうし
ところでDATE型とINT型の検索速度の比較って
ググって見るとINT型のほうが早いみたいだけど
コメント4件

355
NAME IS NULL[sage]   投稿日:2017/03/04 08:31:07  ID:???.net(1523)
郵便番号と地名が書いてるデータベースを作るとして
0から始まる北海道はとりあえず無視するとして
7桁のユニークな数字になるわけですが
そういう番号があっても主キーにせずオートインクリメントなサロゲートキーを作るべきですか?
コメント2件

356
NAME IS NULL[sage]   投稿日:2017/03/04 08:46:24  ID:???.net(1523)
郵便番号は郵便局が自分たちの業務をやりやすくするために振っただけのものであって
地名との一対一の紐付けを保証するものではないし
郵便局の都合で変更されることもある
そのへんを理解した上で使うなら別にいいんじゃない?

357
NAME IS NULL[sage]   投稿日:2017/03/04 09:03:59  ID:???.net(1523)
「郵便番号の」サロゲートだとしたらそのへんは何も変わらんが。

358
NAME IS NULL[sage]   投稿日:2017/03/04 09:23:42  ID:???.net(1523)
>354
> ところでDATE型とINT型の検索速度の比較って
> ググって見るとINT型のほうが早いみたいだけど

そらそうよ。プログラムやってれば見当つくはず。

>355
困ったことに、郵便番号と地名は1:nです

359
NAME IS NULL[sage]   投稿日:2017/03/04 09:32:54  ID:???.net(1523)
データベースは当然、1:n関係を表現できるだろうに。何を困ることがある?

360
NAME IS NULL[sage]   投稿日:2017/03/04 09:34:36  ID:???.net(1523)
>348は嘘やったんやな

361
NAME IS NULL[sage]   投稿日:2017/03/04 10:37:00  ID:???.net(1523)
郵便番号はちょっと例えが悪かったかな・・・
例えばクレジットカードとか連番だと都合が悪いけど一意な番号
それでもサロゲートは必要?

362
NAME IS NULL[sage]   投稿日:2017/03/04 10:49:39  ID:???.net(1523)
そういう質問している人には必要ない。

363
NAME IS NULL[sage]   投稿日:2017/03/04 11:01:27  ID:???.net(1523)
だってとりあえずauto incrementを主キーにしとけって書籍に書いてるんだもの

364
NAME IS NULL[sage]   投稿日:2017/03/04 11:13:05  ID:???.net(1523)
晒せ。

365
NAME IS NULL[sage]   投稿日:2017/03/04 11:36:56  ID:???.net(1523)
初心者にはあれこれいうよりベストな書き方覚えろっていう
ベストでもないオレオレ書き方教える書籍は多い
全部のテーブルにcreated updated作れみたいな

366
NAME IS NULL[sage]   投稿日:2017/03/04 15:42:19  ID:???.net(1523)
SQLはなんで大文字が好きなの?
コメント2件

367
NAME IS NULL[]   投稿日:2017/03/04 23:32:19  ID:b+Y4fejK.net(4)
>354
そもそもどのRDBMSのINT型なのか知らないが、標準SQLではコンピュータの数値表現としているので、速いのはあたりまえ。

ちなみにOracleでは標準SQLのINT型はNUMBER型なのでまったく違う。当然Oracleでは計算が遅くはなる。

368
NAME IS NULL[]   投稿日:2017/03/04 23:33:46  ID:b+Y4fejK.net(4)
>366
プログラミング言語の歴史では、小文字をメインに使うようになったのはC言語あたりから。

369
NAME IS NULL[sage]   投稿日:2017/03/04 23:57:32  ID:???.net(1523)
Oracleの場合、内部で大文字に変えていると聞いたことがある
本当かどうかは確かめたことないし、今もそうなのかは分からないが
使っていた当時は全部大文字で書いてたな
コメント4件

370
NAME IS NULL[sage]   投稿日:2017/03/05 04:43:17  ID:???.net(1523)
DB側で用意してる関数含めてユーザ入力による変数になってる
テーブル名とかカラム名以外は全部大文字にしてる
`table` `long_table_name` `column` `long_column_name`
ご丁寧に``で囲んでるけどこれもいらんのよなあ
なんかいい規則があればいいんだけど

371
NAME IS NULL[sage]   投稿日:2017/03/05 11:05:14  ID:???.net(1523)
基本的に大文字しか使えない環境が当たり前の頃からSQLあるからな、、、
COBOLでの EXEC SQL 文とか懐かしいなあ

372
NAME IS NULL[]   投稿日:2017/03/05 15:50:25  ID:ZV3ds4gJ.net(2)
>369
それを言うのがいるけど、プログラマでそんなことを言ったら恥ずかしいぞ。大文字、小文字を区別しないなら大文字、小文字の判定処理が入るわけで、そこから大文字に変換する処理が遅くて問題になるなど阿呆みたいなこだわりだ。
コメント2件

373
NAME IS NULL[sage]   投稿日:2017/03/06 00:07:50  ID:???.net(1523)
大文字に変換する処理が遅くて問題になるなんて誰か言ってた?

374
NAME IS NULL[]   投稿日:2017/03/06 01:05:03  ID:VHVbqVdu.net(4)
>369 が書いてるが?

375
NAME IS NULL[]   投稿日:2017/03/06 01:09:49  ID:VHVbqVdu.net(4)
大文字が大文字かどうかより、文字がなんなのかの判定も入るわけで、そんな処理時間はいつの時代のコンピュータの性能で考えているんだよw

こんなことを言い出したらRDBはあらゆることが遅すぎて使えない。現実にRDBはコンピュータの性能が上がったから使い物になるようになった歴史も知らないのか?

376
NAME IS NULL[sage]   投稿日:2017/03/06 01:15:29  ID:???.net(1523)
>372
asp

377
NAME IS NULL[sage]   投稿日:2017/03/06 02:48:06  ID:???.net(1523)
368本人です。何かお騒がせしてしまい済みません。
相当昔の話です。
動かしていたサーバーはW2k、CPUはP3、メモリー4G程度でした。
できるだけ負荷を減らせと言う指示の中で作業してました。

378
NAME IS NULL[sage]   投稿日:2017/03/06 05:47:11  ID:???.net(1523)
パーサーの仕様で大文字小文字区別しないにしても
大文字しかパースできなくて変換処理が必要だとしても
それに判定を挟む必要もなければ
ただの一文にすぎないSQLに処理時間なんてギャグかよって話
コメント4件

379
NAME IS NULL[sage]   投稿日:2017/03/06 07:05:39  ID:???.net(1523)
>378
お前の小さい脳みそこそギャグかよww
コメント2件

380
NAME IS NULL[sage]   投稿日:2017/03/06 07:25:07  ID:???.net(1523)
↑アホ丸出し

381
NAME IS NULL[sage]   投稿日:2017/03/06 07:28:15  ID:???.net(1523)
>379
構文解析にかける時間に比べれば
文字列の処理なんて微々たるものがわからないような猿

382
NAME IS NULL[]   投稿日:2017/03/06 12:11:06  ID:0KbRjlYP.net(2)
>378
判定処理はいるだろw
文字がAならAかどうか判定する。

何この低レベルw
コメント8件

383
NAME IS NULL[sage]   投稿日:2017/03/06 12:23:32  ID:???.net(1523)
小文字混ざってる前提で全て大文字にしてからパースすればいいだけってのは
プログラマーならわかるだろ

384
NAME IS NULL[sage]   投稿日:2017/03/06 12:41:33  ID:???.net(1523)
>382
全部大文字にすればよいでしよw

385
NAME IS NULL[]   投稿日:2017/03/06 15:24:30  ID:bDLzF0aS.net(2)
結局予約語だけ大文字で書けばいいの?
開発効率落ちまくるけどどの参考書もそうしてるよな
コメント6件

386
NAME IS NULL[sage]   投稿日:2017/03/06 15:32:38  ID:???.net(1523)
コーディング規約ってのがそれぞれのチームなり部署なりにあるだろ?
それに従えば良いだろ。
んで自分一人のものだけなら好き勝手に

387
NAME IS NULL[sage]   投稿日:2017/03/06 15:59:13  ID:???.net(1523)
そうなんだけどさ、大文字と小文字使い分けるのってすごい面倒なんだよなぁ
玄人の皆さんは使い分けなきゃいけない状況のときどうやって書いてるの?
毎回shift+capslockしてるの?てか列名日本語にするのほんとやめてください
コメント2件

388
NAME IS NULL[sage]   投稿日:2017/03/06 16:09:32  ID:???.net(1523)
使い捨ては全部小文字
あとで見返すことがあるものは予約後大文字、シフトに指置けばいいべ

389
NAME IS NULL[sage]   投稿日:2017/03/06 16:13:07  ID:???.net(1523)
>385
効率落ちまくるって、どんだけクエリ書いてるんだよ
300char/minだとして、大文字小文字意識しても5秒ほどしかかわらんだろ
つまり、1分の差がでるのに3600文字必要
毎日1万字書く奴がいたとしても、せいぜい3分/dayくらいの差だ
コメント4件

390
NAME IS NULL[]   投稿日:2017/03/06 19:02:01  ID:aPuKjXeW.net(2)
>389
お前はキーパンチャーかwどんだけキーボードマスターだよw

391
NAME IS NULL[sage]   投稿日:2017/03/06 19:18:44  ID:???.net(1523)
全部小文字でもいいだろ好きにしろ
ぱっと見てここSQLだなってわかるようにしたいなら大文字にすりゃいいし
動きゃいいんだよ

392
NAME IS NULL[sage]   投稿日:2017/03/07 02:45:55  ID:???.net(1523)
>382
大文字にするにあたって元の文字が大文字か小文字か判定する必要はないって話だと思うんだが、
あなたが言うように判定するのは無駄なので判定しないのが普通。
コメント2件

393
NAME IS NULL[sage]   投稿日:2017/03/07 10:30:00  ID:???.net(1523)
>389
キーパンチャーなみのタイプ速度で、普通は考えられないような量のクエリを1日にタイプするとしても、
それでも1日あたりの作業低下量は3分程度なんだが、>385はどんだけタイプしてんだよって話だ

読解力ない奴って、底が知れんわ
コメント2件

394
NAME IS NULL[sage]   投稿日:2017/03/07 12:02:08  ID:???.net(1523)
そもそもSQL誕生して何十年も経ってるのにいまだにこの議論してんだから
大文字小文字の問題は根深いよな

>393
タイピング速度の問題ではなくてストレス的な意味の開発効率を言ってると思うぞ>385
コメント4件

395
NAME IS NULL[sage]   投稿日:2017/03/07 13:44:27  ID:???.net(1523)
>394
この程度のコーディングルールでストレスとか、向いてないんじゃねーの?

396
NAME IS NULL[sage]   投稿日:2017/03/07 13:54:22  ID:???.net(1523)
安価ミスしちゃうそそっかしい人はフォーマッタ使えばいいんじゃないでしょうか。

397
NAME IS NULL[sage]   投稿日:2017/03/07 14:03:09  ID:???.net(1523)
>394
> 大文字小文字の問題は根深いよな
根深いっつーか、どっち派もいるというだけでしょ
他言語だっていつまでたっても中括弧の書き方レベルの議論が終わらないし

398
NAME IS NULL[sage]   投稿日:2017/03/07 14:23:20  ID:???.net(1523)
てか、別に大文字小文字で開発効率が落ちる奴がいても不思議じゃない。
不思議じゃないが、だから何ってはなしで。
俺らには関係ない。

399
NAME IS NULL[sage]   投稿日:2017/03/07 15:50:13  ID:???.net(1523)
スレチかも知れんがMac使ってるやつはSequel入れとけフリーでこんないいの
なかなかないぞ

400
NAME IS NULL[sage]   投稿日:2017/03/07 16:33:49  ID:???.net(1523)
大文字小文字もインデントの具合も全てどうでもいいと思ってるが・・・

カンマを行頭に置く奴だけは許せん!!!

401
NAME IS NULL[sage]   投稿日:2017/03/07 17:40:36  ID:???.net(1523)
俺もこの程度で効率落ちまくるなら、プログラマに向いてないと思うよ

402
NAME IS NULL[sage]   投稿日:2017/03/07 17:52:14  ID:???.net(1523)
プログラマなら、たとえMISRA-C完全準拠を要求されても、淡々と従うものだ。

403
NAME IS NULL[sage]   投稿日:2017/03/07 18:17:10  ID:???.net(1523)
>382
お前がw
このスレでw
一番低レベルだがなwww

404
NAME IS NULL[sage]   投稿日:2017/03/07 21:19:09  ID:???.net(1523)
>382
何度詠んでもわらてまう

405
NAME IS NULL[sage]   投稿日:2017/03/07 23:52:37  ID:???.net(1523)
俺は逆に面倒だと思う人のほうがプログラマには向いてるとおもうけどな
if so を考えるのって大事だと思うぞコーダーって意味なら向いてないと思うけど
コメント2件

406
NAME IS NULL[sage]   投稿日:2017/03/08 12:54:37  ID:???.net(1523)
>405
面倒だと思うのはかまわない

ただ、この程度で効率落ちまくるレベルの奴は、プログラマに向いてないってだけだ

407
NAME IS NULL[sage]   投稿日:2017/03/08 15:50:08  ID:???.net(1523)
「落ちまくる」のは向き不向きよりも不慣れなだけだろう

向き不向きの話をするなら、大文字で書くことに何の疑問も持たない人の方がプログラマに向いていない
理由があって大文字を選択してるなら良いことだと思うが
コメント2件

408
NAME IS NULL[sage]   投稿日:2017/03/08 16:03:35  ID:???.net(1523)
マジでうざいわ。
いつまでやってんだ。

409
NAME IS NULL[sage]   投稿日:2017/03/08 16:10:50  ID:???.net(1523)
>407
キーワードを大文字で書けくらい、即慣れるだろ
ふつーのプログラマなら、効率が落ちまくったりしません

410
resumi[]   投稿日:2017/03/08 17:37:21  ID:hjh5f++s.net(2)
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。

411
NAME IS NULL[sage]   投稿日:2017/03/08 17:54:51  ID:???.net(1523)
この粘着質、どこかで

412
NAME IS NULL[sage]   投稿日:2017/03/08 18:00:24  ID:???.net(1523)
>387
> 毎回shift+capslockしてるの?
誰も答えないのでコメントしとくか。

普通はCapsLockなんか使わないでしょ。
Shift推しながらタイプするだけ。
コメント2件

413
NAME IS NULL[sage]   投稿日:2017/03/08 18:11:39  ID:???.net(1523)
予約語なんて一覧にして各RDBのドキュメントに乗ってんだから
ちょちょいとコピペして整形して正規表現で置き換えりゃいいだろ

414
NAME IS NULL[]   投稿日:2017/03/08 19:12:42  ID:o80qSDDR.net(4)
でたw正規表現厨w

415
NAME IS NULL[sage]   投稿日:2017/03/08 19:15:55  ID:???.net(1523)
その正規表現がこちらになります

416
NAME IS NULL[sage]   投稿日:2017/03/08 19:58:12  ID:???.net(1523)
age半角wはレベル低すぎんだよ

417
NAME IS NULL[]   投稿日:2017/03/08 20:37:34  ID:o80qSDDR.net(4)
それでは気をとりなおしてwレベル高い正規表現どうぞw

418
NAME IS NULL[sage]   投稿日:2017/03/08 21:24:42  ID:???.net(1523)
エディタに丸投げするだけなのに
本気で言ってるのかどうなのか・・・

419
NAME IS NULL[]   投稿日:2017/03/09 18:52:44  ID:cT/4yIz6.net(4)
>392
何をわけのわからないことを言ってるのか?コンピュータからしたら大文字と小文字のアルファベットは別の文字だぞ。

420
NAME IS NULL[]   投稿日:2017/03/09 18:55:38  ID:cT/4yIz6.net(4)
初心者が数字列を数値だと言い張ってゆずらないのと同じなのかな?

こういうのは時間の無駄だから関わらない方がいいわ。

421
NAME IS NULL[sage]   投稿日:2017/03/09 19:06:21  ID:???.net(1523)
全くだな
話がわかってないID:cT/4yIz6 のようなキチガイは構ってはいけない

422
NAME IS NULL[]   投稿日:2017/03/09 19:25:54  ID:l9oI+xHV.net(2)
いやいくら馬鹿だからってキチガイさすがには言いすぎだろw


さて与太話はこれくらいにして
そろそろ正規表現の話題の戻そうか
コメント2件

423
NAME IS NULL[sage]   投稿日:2017/03/10 06:33:59  ID:???.net(1523)
>422
お前も馬鹿でキチガイのようだがw

424
NAME IS NULL[sage]   投稿日:2017/03/10 13:43:59  ID:???.net(1523)
ぶっちゃけどんなプログラミング言語習得するよりDB極めたほうが金になるよな
業界の中でもDBエンジニアを目指すのが一番おすすめだわ
コメント4件

425
NAME IS NULL[sage]   投稿日:2017/03/10 13:44:11  ID:???.net(1523)
正規表現、NGにした方がいい?

426
NAME IS NULL[sage]   投稿日:2017/03/10 13:58:27  ID:???.net(1523)
>424
クエリだけ書けてもプログラムないと高度な事できないだろ。分析止まりでランニングできない。
コメント2件

427
NAME IS NULL[sage]   投稿日:2017/03/10 14:55:14  ID:???.net(1523)
>426
逆にクエリが書けなればダイナミックなプログラムはかけないけどな
コメント2件

428
NAME IS NULL[sage]   投稿日:2017/03/10 14:59:24  ID:???.net(1523)
>427
だからどちらかじゃなくて両方必要って話だろ

429
NAME IS NULL[sage]   投稿日:2017/03/10 15:05:29  ID:???.net(1523)
>424
夢見がちな文系エンジニア

430
NAME IS NULL[sage]   投稿日:2017/03/10 15:30:00  ID:???.net(1523)
クエリしか書けないエンジニアなんているの?

431
NAME IS NULL[sage]   投稿日:2017/03/10 19:39:42  ID:???.net(1523)
正規表現大好き&#128149;

432
NAME IS NULL[sage]   投稿日:2017/03/10 19:42:09  ID:???.net(1523)
改行考慮や大文字小文字無視するだけでも正規表現使う理由にはなる
正規表現と聞いて脊椎反射するやつはエディタで置換したことないやつ

433
NAME IS NULL[]   投稿日:2017/03/10 19:54:04  ID:kvVonAc4.net(4)
凄く難しいこと言ってSO
だけど全体的には凄くアタマ悪SO
正規厨って大体SOUL

434
NAME IS NULL[sage]   投稿日:2017/03/10 20:14:25  ID:???.net(1523)
難しいように聞こえるならお前の頭が悪いのだろう
正規表現は一般的なテキスト処理にも使われるもので
プログラムの中だけで使われるものじゃない

435
NAME IS NULL[]   投稿日:2017/03/10 20:46:07  ID:kvVonAc4.net(4)
突如何者かに向けて正規教室を始めた正規厨SO FOOL

436
NAME IS NULL[sage]   投稿日:2017/03/11 09:13:34  ID:???.net(1523)
正規とか言ってる阿呆は派遣か契約なのか?

437
NAME IS NULL[sage]   投稿日:2017/03/11 11:14:03  ID:???.net(1523)
いいえ、ニートです

438
NAME IS NULL[sage]   投稿日:2017/03/11 11:57:22  ID:???.net(1523)
正規表現知ってから、もう、文字数数えて
左から何文字目から何文字目でアレを見つけて
文字数数えて次のアレを見つけて文字数数えて
切り取って、みたいなことやらなくなったから
頭が鈍った気がするけど
便利でもう過去には戻れない。

439
NAME IS NULL[sage]   投稿日:2017/03/11 12:24:01  ID:???.net(1523)
だが正規表現にバグがあった時のことを考えると
怖くて本番業務には使えない
コメント2件

440
NAME IS NULL[]   投稿日:2017/03/11 12:38:16  ID:plFNS0RJ.net(2)
正規厨ってニートだったのかYO
正規ばかり弄ってないで働けYO

441
NAME IS NULL[sage]   投稿日:2017/03/11 17:49:09  ID:???.net(1523)
だからなんだよ正規って
頭悪いのか?

442
NAME IS NULL[sage]   投稿日:2017/03/11 21:20:37  ID:???.net(1523)
え、てか正規表現できないプログラマとかいなくね?
忘れても調べればすぐでてくるし

443
NAME IS NULL[sage]   投稿日:2017/03/11 21:35:22  ID:???.net(1523)
正規表現ときいたら脊椎反射的に噛みついちゃう非正規おじさんをあんまイジメないでくれる?

444
NAME IS NULL[sage]   投稿日:2017/03/11 21:48:24  ID:???.net(1523)
>439
sqlにもバグがあるけど
どう扱うの?
コメント2件

445
NAME IS NULL[sage]   投稿日:2017/03/12 02:22:23  ID:???.net(1523)
>444
SQLにバグがあったらメーカーのテストですぐにわかるだろう
正規表現はどれだけテストされているか怪しいものだ
コメント2件

446
NAME IS NULL[sage]   投稿日:2017/03/12 07:55:30  ID:???.net(1523)
>445
なぜそう思うの?
コメント4件

447
NAME IS NULL[sage]   投稿日:2017/03/12 09:32:45  ID:???.net(1523)
>446
じゃないと正規場かにできないのね

448
NAME IS NULL[sage]   投稿日:2017/03/12 09:40:32  ID:???.net(1523)
>446
テストが大変そうだから

449
NAME IS NULL[sage]   投稿日:2017/03/12 10:29:45  ID:???.net(1523)
SQLより正規表現のがテスト大変て本気で言ってるのか
コメント4件

450
NAME IS NULL[sage]   投稿日:2017/03/12 10:36:24  ID:???.net(1523)
>412-413当たりが話の元
ファイルにSQL書く時大文字タイプするのはどうするかって話

451
NAME IS NULL[sage]   投稿日:2017/03/12 10:47:29  ID:???.net(1523)
>449
俺はそうだぜ
一足お先に

452
NAME IS NULL[sage]   投稿日:2017/03/12 14:30:19  ID:???.net(1523)
RDBMSのスレなのに正規化じゃなくて正規表現の話題になってるのが不思議w
コメント2件

453
NAME IS NULL[]   投稿日:2017/03/12 14:56:31  ID:bZc6gV75.net(4)
>449
正規表現はそれ自体がわかりにくく、バグの温床。安易な正規表現の使用はよくない。
コメント2件

454
NAME IS NULL[]   投稿日:2017/03/12 14:57:14  ID:bZc6gV75.net(4)
>452
RDBでも正規表現を使う関数があるから的外れでもない。

455
NAME IS NULL[sage]   投稿日:2017/03/12 15:11:39  ID:???.net(1523)
そんな難し複雑な正規表現の話をしてるわけではないだろうに
正規表現ときいて脊椎反射しちゃう正規おじさんがいけないんだよ
コメント2件

456
NAME IS NULL[]   投稿日:2017/03/12 18:07:08  ID:WTgIsk55.net(2)
>455
でもオマエ正規厨やROCK!
俺ってSOUL!
低能は馬鹿にするポリシーなんだYO!
コメント4件

457
NAME IS NULL[sage]   投稿日:2017/03/12 18:52:38  ID:???.net(1523)
>453
安易さとは?

458
NAME IS NULL[sage]   投稿日:2017/03/12 19:01:08  ID:???.net(1523)
>456
ごめんね正規じゃなかったね
非正規おじさんだったね
早く正規になれるといいね

459
NAME IS NULL[sage]   投稿日:2017/03/12 19:28:58  ID:???.net(1523)
>456
正気になーれー

460
NAME IS NULL[]   投稿日:2017/03/12 20:13:02  ID:1Xqna3W1.net(2)
レーダー追尾により自然値0.058μSv/hをはるかに上回るガンマー線が27万円程度の測定器で否が応でも計測され続ける
https://www.youtube.com/watch?v=CtiacppR5dk

9:27人工衛星(確実な部分)
https://www.youtube.com/watch?v=-Ls8O7jjK1A

461
NAME IS NULL[sage]   投稿日:2017/03/13 08:03:56  ID:???.net(1523)
おじさんは正規表現得意なんじゃね?
秀丸にもあるんでしょ?
コメント2件

462
NAME IS NULL[]   投稿日:2017/03/14 12:41:38  ID:KmvSvp8f.net(2)
>461
秀丸はどんどん使われなくなってるぞ。

463
NAME IS NULL[sage]   投稿日:2017/03/14 15:54:17  ID:???.net(1523)
そろそろ、SQLに関する話題に戻そうよ

464
NAME IS NULL[sage]   投稿日:2017/03/14 19:32:27  ID:???.net(1523)
正規表現のテストは自信が持てないのに、SQLのテストは完璧に出来るという自信は何処から湧いて出るのか。

怖や怖や。
コメント4件

465
NAME IS NULL[]   投稿日:2017/03/14 19:36:53  ID:VMT6GYOD.net(4)
>464
自身が持てないテストなんてテストじゃねえよw
何言っちゃってんの正規厨クンw

466
NAME IS NULL[]   投稿日:2017/03/14 19:44:39  ID:LfWSYHE8.net(6)
>464
どんな正規表現を言ってるんだよ?
よほど簡単なものしか想定してないのか。

正規表現はプロ中のプロでも間違うことがあるんだぞ?

だから複雑なものはあまり使われない。ぱっと見、これで合っているかどうかわからないのが原因。
コメント2件

467
NAME IS NULL[]   投稿日:2017/03/14 19:51:46  ID:LfWSYHE8.net(6)
正規表現は言語、環境によっても方言が強くて面倒

468
NAME IS NULL[sage]   投稿日:2017/03/14 20:07:23  ID:???.net(1523)
んなことないだろ
だいたいposixかperlか2択

469
NAME IS NULL[sage]   投稿日:2017/03/14 20:28:52  ID:???.net(1523)
>466
うえでワーワー言ってる人って、正規表現を書き間違えたことでのバグじゃなくて、仕様通りの動作をしないというバグのことを指しているとおもうよ

470
NAME IS NULL[sage]   投稿日:2017/03/14 20:37:06  ID:???.net(1523)
ここはデータベース板だって事分かってる?

471
NAME IS NULL[sage]   投稿日:2017/03/14 20:43:01  ID:???.net(1523)
そりゃ分かってるでしょう

472
NAME IS NULL[]   投稿日:2017/03/14 20:47:24  ID:VMT6GYOD.net(4)
時と場所をわきまえずに正規自慢したがるのが正規厨なんだYO
コメント2件

473
NAME IS NULL[]   投稿日:2017/03/14 21:15:09  ID:LfWSYHE8.net(6)
>472
Oracleも正規表現の関数を大量に追加したものの使ってるプログラムを見たことない。

正規表現の乱用はよくないという結論は十数年前に出てるよな。

Eメールアドレスの形式チェックですら正規表現だけでやろうとすると難しくて昔はどのWebサイトもミスしまくってたな。
コメント4件

474
NAME IS NULL[sage]   投稿日:2017/03/14 22:45:55  ID:???.net(1523)
>473
裏付けは?
コメント2件

475
NAME IS NULL[sage]   投稿日:2017/03/15 00:01:42  ID:???.net(1523)
>473
なんでも乱用は良くないものですよ

Eメールアドレスの形式チェック「ですら」

コメント2件

476
NAME IS NULL[]   投稿日:2017/03/15 23:12:31  ID:yFO1cwOX.net(6)
>474
正規表現だけでEメールアドレスの文字列があっているかどうかを一発で判定する正規表現を考えればいい。なかなか難しいぞ。

477
NAME IS NULL[]   投稿日:2017/03/15 23:13:19  ID:yFO1cwOX.net(6)
>475
日本語が苦手なんですね。

478
NAME IS NULL[sage]   投稿日:2017/03/15 23:28:15  ID:???.net(1523)
(はは〜ん…コイツさては正規厨だな…)

479
NAME IS NULL[]   投稿日:2017/03/15 23:50:53  ID:yFO1cwOX.net(6)
語彙って親や育った環境で大差がつくんだよな。知らない、あまりその人が聞かない言葉や言い回し見たり、聞いたりすると言葉がおかしいなどと批判してくる。本人が無知なだけなのに。

480
NAME IS NULL[sage]   投稿日:2017/03/16 02:43:53  ID:???.net(1523)
3日連投しましょう

481
NAME IS NULL[sage]   投稿日:2017/03/26 06:46:08  ID:???.net(1523)
SQLの書き方で質問ですが、
AND句は行の先頭に書くか、行の末尾に書くか、どちらが一般的でしょうか?

(例1)
WHERE
 A = 1 AND
 B = 1

(例2)
WHERE
 A = 1
 AND B = 1

SQLの書き方ガイドラインのようなものがあれば教えてください。
よろしくお願いします。
コメント4件

482
NAME IS NULL[sage]   投稿日:2017/03/26 10:03:55  ID:???.net(1523)
>481
両方一般的
コメント2件

483
NAME IS NULL[]   投稿日:2017/03/26 10:40:33  ID:uME5dCZb.net(2)
>481
そういう決まりはない。プログラミング言語と同じで改行せずにANDがあれば条件の続きがあるとわかりやすいが、コメントアウトしにくい。

selectの選択列のカンマ位置と同じようなもの。

484
NAME IS NULL[sage]   投稿日:2017/03/26 12:01:47  ID:???.net(1523)
うちは
where 1 = 1
and a = 1
and b = 1

485
NAME IS NULL[sage]   投稿日:2017/03/26 13:03:58  ID:???.net(1523)
UNIONやサブクエリ入るとまたちょっと変わるけど基本的に
select tableの選択セクション whereの条件セクション orderとかのその他セクション
この3つで分ける程度だな

486
NAME IS NULL[]   投稿日:2017/03/26 16:07:36  ID:vHb56IYD.net(2)

487
NAME IS NULL[]   投稿日:2017/03/29 18:16:55  ID:XE4RKzOb.net(2)
技術士の全部門をコンプリート vs 東大理三首席現役合格 vs 旧司法試験首席一発合格

どれが一番凄い?
コメント2件

488
NAME IS NULL[sage]   投稿日:2017/03/30 05:17:15  ID:???.net(1523)
>482, 482, 483, 484
返信が遅くなってしまいすみません。
レスありがとうございました。

>selectの選択列のカンマ位置と同じようなもの。

なるほどそうですか。
例1も例2も好きなほうでよい、ということですね。

(例1)
  SELECT
   A, B, C,
   D

(例2)
  SELECT
   A, B, C
   , D

勉強になりました。

489
NAME IS NULL[sage]   投稿日:2017/03/30 08:09:41  ID:???.net(1523)
条件の内容を最初に見たいからandは後ろにつけてる。
前にあると地味にイラっとする。
where
a=1 and
b=2

490
NAME IS NULL[sage]   投稿日:2017/03/31 15:35:06  ID:???.net(1523)
>487
東大理三首席現役合格
正真正銘期間限定延期不可一発勝負なのはこれだけ

491
ich1[]   投稿日:2017/04/01 14:41:02  ID:YerBiODJ.net(2)
https://goo.gl/8by4rX
これは嫌だなー。。本当なの?

492
NAME IS NULL[]   投稿日:2017/04/01 21:59:51  ID:O38ZNBFt.net(2)
カスタマーエンジニアってどうですか?収入面とか労働面で。
楽ですか?それとも超キツイですか?

493
NAME IS NULL[sage]   投稿日:2017/04/01 22:41:01  ID:???.net(1523)
>492
マルチ。くそ

494
NAME IS NULL[sage]   投稿日:2017/04/09 19:51:01  ID:???.net(1523)
このどうですか厨は、いろんな板で荒らしているだろ
相手せず、スルーしようよ

495
NAME IS NULL[]   投稿日:2017/04/13 18:25:57  ID:n8gSS6s1.net(2)
C#からsqliteを使っているんですが、データベースの設計方法がわかりません、第2正規化以降って必要ですか?
必要なデータを洗い出してそこから正規化していけばいいんでしょうか?もしある程度レコードが増えた状態で新たに項目追加したいとなったらどうすればいいんでしょうか?
コメント2件

496
NAME IS NULL[sage]   投稿日:2017/04/13 18:43:18  ID:???.net(1523)
そりゃ設計のスレだな
追加したカラムに既存のレコードも全部埋まるなら追加でいいし
埋まらないなら別に作るべきでしょ
コメント2件

497
NAME IS NULL[sage]   投稿日:2017/04/13 18:44:45  ID:???.net(1523)
>495
本買って読んだ方が手っ取り早い

498
NAME IS NULL[sage]   投稿日:2017/04/13 21:45:28  ID:???.net(1523)
>496
すいません
では設計スレのほうにいきます

499
NAME IS NULL[sage]   投稿日:2017/04/20 02:03:12  ID:???.net(1523)
mybatis使っててDBに定義されたBLOB型のデータをバイト配列として取得する方法ってありますか?
コメント4件

500
NAME IS NULL[]   投稿日:2017/04/20 03:51:44  ID:3sXeWAt/.net(4)
>499
プログラム板で聞いた方がいい。

501
NAME IS NULL[]   投稿日:2017/04/20 03:56:00  ID:3sXeWAt/.net(4)
>499
調べたらそれ普通じゃねえか。すこしは調べろよ。

502
ich1[]   投稿日:2017/04/21 16:27:47  ID:R/eXxgbc.net(2)
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。

503
NAME IS NULL[sage]   投稿日:2017/04/21 23:52:26  ID:???.net(1523)
アホかと思われるかも知れませんが、
こうするとエロラーになります。
何か良い方法ないですか?

Select *
From テーブル2 ←──┐
Union All          │
Select *          │
From (サブクエリ) As テーブル2
コメント4件

504
NAME IS NULL[]   投稿日:2017/04/21 23:54:28  ID:fJADFuER.net(2)
>503
ネタですか?

名前がぶつかっているのだから、あたりまえでしょうがw
コメント8件

505
NAME IS NULL[sage]   投稿日:2017/04/22 00:02:49  ID:???.net(1523)
>504
すいません、駄目なのはわかってて、
こういうのがやりたい時はどう書くのかなと。
コメント2件

506
NAME IS NULL[]   投稿日:2017/04/22 00:10:42  ID:bI/4AwC2.net(4)
>505
なぜそうしなければいけないのか?
コメント2件

507
NAME IS NULL[sage]   投稿日:2017/04/22 00:13:53  ID:???.net(1523)
どういうことをしたいのか質問内容を具体的に書かないと伝わらないぞ
コメント2件

508
NAME IS NULL[sage]   投稿日:2017/04/22 12:23:35  ID:???.net(1523)
すごく具体的な質問だと思うけどどこが分からないのか?
クエリの結果を二重にしたいだけだろ
コメント2件

509
NAME IS NULL[sage]   投稿日:2017/04/22 12:33:28  ID:???.net(1523)
>508
目的意図です

510
NAME IS NULL[sage]   投稿日:2017/04/22 12:33:49  ID:???.net(1523)
サブクエリーを使いたいと言うことかもしれないし、
単一テーブルから二通りの選択をして結果を合算したいのかもしれないし

511
NAME IS NULL[sage]   投稿日:2017/04/22 12:55:02  ID:???.net(1523)
なぜ聞かれてもいない事を深読みして答えようとするのか?
どうにかして自分が知ってる事に結びつけようとしてるだけだろお前ら
コメント2件

512
NAME IS NULL[sage]   投稿日:2017/04/22 13:04:00  ID:???.net(1523)
それも、妄想だろうが

513
NAME IS NULL[sage]   投稿日:2017/04/22 13:13:27  ID:???.net(1523)
>511
マジこれよ
反省する人多すぎ

514
NAME IS NULL[sage]   投稿日:2017/04/22 15:11:11  ID:???.net(1523)
>503
unionはテーブル名見てるんじゃなくselectの中身見てるだけ
だから別名付けてどうぞ
コメント6件

515
NAME IS NULL[]   投稿日:2017/04/22 15:33:24  ID:bI/4AwC2.net(4)
>514
unionを同じテーブルとでしか使えないと思い込んでると仮定したわけか?

516
NAME IS NULL[sage]   投稿日:2017/04/23 02:28:35  ID:???.net(1523)

517
NAME IS NULL[sage]   投稿日:2017/04/23 03:28:24  ID:???.net(1523)
>506
>507
こういう嫌がらせみたいな表があるんですよ。

商品名  単価1 単価2 単価3
もょもと 100  200  300
すけさん 120
アイリン 500  990

これをUnionで縦に繋げれば綺麗な表になりますが、
普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

Select 商品 単価1 From 元テーブル
Select 商品 単価2 From 1回目の抽出結果
Select 商品 単価3 From 2回目の抽出結果

>514
別名でどう紐づけるんですか?
コメント2件

518
NAME IS NULL[sage]   投稿日:2017/04/23 03:46:27  ID:???.net(1523)
あれ?
もしかして、Union Allじゃなくて、
単にUnionしたものに対して検索した方が速かったりします?
コメント2件

519
NAME IS NULL[]   投稿日:2017/04/23 05:19:54  ID:7gvObldM.net(4)
やりたいことがわかりそうでわからない。

520
NAME IS NULL[]   投稿日:2017/04/23 05:23:12  ID:7gvObldM.net(4)
>518
結局、何がしたいわけ?
コメント2件

521
NAME IS NULL[sage]   投稿日:2017/04/23 09:38:17  ID:???.net(1523)
>517
綺麗な表ってなに?
またなんでそういう要求が
でる背景はなに?
コメント2件

522
NAME IS NULL[sage]   投稿日:2017/04/23 09:50:21  ID:???.net(1523)
速度が目的なら普通に検索して単価1-3の分離はクライアント側でやるのが現実的だろうね。
あるいは単価1-3をUNION ALLしたサブクエリから抽出する。賢いDBMSなら最適化してくれるかもしれない。

523
NAME IS NULL[sage]   投稿日:2017/04/23 09:56:38  ID:???.net(1523)
>520
検索と表の整形です。

>521
上の例では省略しましたが、
実際は、かなり横に長いんです。

商品名 単価1 単価2 単価3 ・・・ 単価50

おもいっきり横にスクロールしないと全体を見渡せない、
嫌がらせみたない表でしょう?
コメント2件

524
NAME IS NULL[sage]   投稿日:2017/04/23 10:52:31  ID:???.net(1523)
>523
あなたのいう綺麗な表とは?
縦にしたいの?


『おもいっきり縦にスクロールしないと全体を見渡せない、
嫌がらせみたない表。』

を作りたいの?
何が便利になるの?
コメント4件

525
NAME IS NULL[sage]   投稿日:2017/04/23 11:01:55  ID:???.net(1523)
union allで列分繋げればできるよ
コメント2件

526
NAME IS NULL[sage]   投稿日:2017/04/23 11:12:44  ID:???.net(1523)
質問返ししてる奴いいかげんウザい
コメント2件

527
NAME IS NULL[sage]   投稿日:2017/04/23 11:17:44  ID:???.net(1523)
>526
どうしたw
急にww

528
NAME IS NULL[sage]   投稿日:2017/04/23 11:46:31  ID:???.net(1523)

529
NAME IS NULL[sage]   投稿日:2017/04/23 11:50:19  ID:???.net(1523)
商品名を抽出したいのか
商品名に対するいずれかの単価を抽出したいのか
商品名に対する全ての単価を抽出したいのか

それにしても、単価1から単価50まで並べるというのは苦痛だ
そういうテーブル定義作った奴を縛り首にした方が後々良い結果がでる
コメント2件

530
NAME IS NULL[sage]   投稿日:2017/04/23 13:24:51  ID:???.net(1523)
>524
データベースって普通縦なんじゃ・・・。
コメント2件

531
NAME IS NULL[sage]   投稿日:2017/04/23 14:37:15  ID:???.net(1523)
>530
普通w

532
NAME IS NULL[sage]   投稿日:2017/04/23 14:42:39  ID:???.net(1523)
>524
縦にしたいです。
うちの会社のマウスホイールは、
全部縦に回るので、縦の方が便利なんです。

この表作った人のは、横に回るのかも知れませんが。

>529
>商品名に対する全ての単価を抽出したいのか

それです。
コメント2件

533
NAME IS NULL[sage]   投稿日:2017/04/23 14:47:27  ID:???.net(1523)
共通表式 でぐぐれば終わりな気がする

534
NAME IS NULL[sage]   投稿日:2017/04/23 14:49:12  ID:???.net(1523)
>532
>525でやるのが無難だろ

535
NAME IS NULL[sage]   投稿日:2017/04/23 17:40:50  ID:???.net(1523)
>単価50

この先、まだまだ増えたりしてな w

536
NAME IS NULL[sage]   投稿日:2017/04/23 17:47:02  ID:???.net(1523)
エクセルのつもりで追加するからたまらんな

537
NAME IS NULL[sage]   投稿日:2017/04/23 22:26:54  ID:???.net(1523)
一つの商品に50種類もの単価が付けられると言うのは、そういう理由があるわけでしょ?
例えば、一つの商品に50個のパーツが必要でそれぞれに単価があるとか
あるいは50の地域での販売単価とか
そういう小項目も合わせて表示しないと、
意味不明の50行の単価出力にならないかな?

538
NAME IS NULL[sage]   投稿日:2017/04/24 01:18:15  ID:???.net(1523)
おれなら実テーブルを変更して、元テーブルと同じ形のビューつくるけどな

539
NAME IS NULL[sage]   投稿日:2017/04/24 10:46:17  ID:???.net(1523)
>504
> 名前がぶつかっているのだから、あたりまえでしょうがw

>514
> だから別名付けてどうぞ

なんか、同名だと駄目で当然的な流れだが、PostgreSQLではエラーにはならない。
エラーになるのが普通なのか?
コメント2件

540
NAME IS NULL[sage]   投稿日:2017/04/24 11:32:36  ID:???.net(1523)
>539
普通とは?
コメント2件

541
NAME IS NULL[sage]   投稿日:2017/04/24 11:50:05  ID:???.net(1523)
>540
> 普通とは?
その疑問の意味がわからない。
コメント2件

542
NAME IS NULL[sage]   投稿日:2017/04/24 12:00:49  ID:???.net(1523)
>541
その文脈で普通を
具体的に表現して。
コメント2件

543
NAME IS NULL[]   投稿日:2017/04/24 12:40:31  ID:Ng2xnlDE.net(4)
インラインビューの別名に実テーブル名を使う心理がわからない。混乱するだけだと思うが。
コメント2件

544
NAME IS NULL[sage]   投稿日:2017/04/24 12:40:38  ID:???.net(1523)
もはや後に退けなくなった意地の質問返し
不毛である

545
NAME IS NULL[sage]   投稿日:2017/04/24 12:48:45  ID:???.net(1523)
>542
え?いやだからPostgreSQL以外のRDBMSじゃエラーになるのが普通なのかって意味だけど?
コメント2件

546
NAME IS NULL[sage]   投稿日:2017/04/24 12:51:43  ID:???.net(1523)
>545
普通でないよ
コメント2件

547
NAME IS NULL[sage]   投稿日:2017/04/24 13:01:37  ID:???.net(1523)
>546
そうなんだ。
いや、>504に誰もコメントしないから、エラーになるのが普通なのかと、ちょっと心配したし。

548
NAME IS NULL[sage]   投稿日:2017/04/24 13:04:55  ID:???.net(1523)
>543
ひょっとして、PostgreSQL以外では以下はエラーになるのが普通なの?
select * from (select a, b from hoge) as hoge
まぁ、俺も実在のテーブル名を別名につけようとは思わないんだが。
コメント2件

549
NAME IS NULL[sage]   投稿日:2017/04/24 13:07:17  ID:???.net(1523)
>548
心配するな、俺の知ってる範囲ではそれはエラーにならない

550
NAME IS NULL[sage]   投稿日:2017/04/24 13:24:49  ID:???.net(1523)
別名に関して誤解してる奴が多そうだな

551
NAME IS NULL[sage]   投稿日:2017/04/24 14:45:32  ID:???.net(1523)
>これをUnionで縦に繋げれば綺麗な表になりますが、
>普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

select一回で全項目を取得して、後はアプリにやらせるとか

552
NAME IS NULL[sage]   投稿日:2017/04/24 14:54:59  ID:???.net(1523)
なんかよくわからんが、case whenでいけるかもよ?
データ例と期待する取得結果を書けば、ちゃんとした答えが返るかも
いまのとこ、何をやりたいのかいまいちわからん

553
NAME IS NULL[sage]   投稿日:2017/04/24 15:30:08  ID:???.net(1523)
こういうこと?

RDBの縦持ちテーブルと横持ちテーブル、およびその変換について
https://gist.github.com/aamine/5565025

554
NAME IS NULL[sage]   投稿日:2017/04/24 15:35:32  ID:???.net(1523)
実体が横持ちになっているのが気に入らないが、とりあえず縦持ちのように参照するためにUNION ALLを行った。
しかし縦を横にするクエリはまだ知らない。

というところなんじゃないかな。

そのクエリがわかれば、実体を縦持ちにするのもやぶさかではないみたいな。そんな感じがする。

555
NAME IS NULL[sage]   投稿日:2017/04/24 15:36:53  ID:???.net(1523)
流れがおかしくなったのは >504 が照れ隠しのために話を流したかっただけだと思う。

556
NAME IS NULL[sage]   投稿日:2017/04/24 15:54:00  ID:???.net(1523)
まぁ、価格カラムが50個あるので50個のクエリをunionで繋げました、よりは、クライアントで頑張る方がいいと思う
縦横変換もクライアントで頑張った方が簡単かつ検索コストも低そう

557
NAME IS NULL[sage]   投稿日:2017/04/24 17:59:56  ID:???.net(1523)
まず価格カラムが50個もあるのが設計として妥当か考えるべきだがな

相関名の有効範囲がUNIONを超えるかどうかがエラーにするかどうかの境目か
そもそも実テーブルと同じ相関名ってエラーになるのが標準仕様だっけ?
コメント2件

558
NAME IS NULL[sage]   投稿日:2017/04/24 18:18:50  ID:???.net(1523)
「だっけ?」の使い方よ

559
NAME IS NULL[sage]   投稿日:2017/04/24 18:25:33  ID:???.net(1523)
>557
この後に及んで何いってんだか

560
NAME IS NULL[]   投稿日:2017/04/24 18:35:58  ID:Ng2xnlDE.net(4)
だいたい別の意味の価格だから別カラムで持っているのが普通だから、質問した人間がわかってないんじゃないのか?

561
NAME IS NULL[sage]   投稿日:2017/04/24 21:05:20  ID:???.net(1523)
カラムに関して誤解してる奴が多そうだな

562
NAME IS NULL[sage]   投稿日:2017/04/26 11:19:16  ID:???.net(1523)
妙に絡むな

563
NAME IS NULL[sage]   投稿日:2017/05/07 00:12:31
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。

564
NAME IS NULL[sage]   投稿日:2017/05/07 00:42:48
こちらで聞いた方が良いように思う

Microsoft SQL Server 総合スレ 11
コメント2件

565
NAME IS NULL[sage]   投稿日:2017/05/07 03:31:50
>564
どうりで出てこないわけですわ。板が違うとは。
ありがとうございます。

566
NAME IS NULL[sage]   投稿日:2017/05/07 15:01:22
いやまあここの板にもあるけど、DBの内容とインストール関係は別の話だな

Microsoft SQL Server 総合スレ 11
コメント2件

567
NAME IS NULL[]   投稿日:2017/05/07 15:50:54
>566
チャージマン研!第23話「恐怖!精神病院」
https://youtu.be/ckO9d_-qiPw

568
NAME IS NULL[sage]   投稿日:2017/05/10 20:02:08
社員
社員ID、名前

社員情報
社員ID、血液型、生年月日、性別、身長

身長170cm以上の社員の名前を取得するSQLってどう書けばいいのでしょうか?

SELECT 社員.名前
FROM 社員情報
WHERE 社員情報.身長 >= 170

これで出てきますか?
コメント10件

569
NAME IS NULL[sage]   投稿日:2017/05/10 20:07:47
>568
出てこないよー

570
NAME IS NULL[]   投稿日:2017/05/10 20:32:12
社員情報に名前入れろや
お前は名無しの社員ちゃうやろアホか
コメント2件

571
NAME IS NULL[sage]   投稿日:2017/05/10 22:05:06
システムがデータベースを使っているのでどうにもできないのです
ざっくり見た感じですが、こんな感じになっていたと思います

572
NAME IS NULL[sage]   投稿日:2017/05/10 22:23:54
ざっくり見ただけで俺に聞くなよ失礼な人だな

573
NAME IS NULL[sage]   投稿日:2017/05/10 22:41:53
失礼しました。やはり方法はないんでしょうか?
コメント2件

574
NAME IS NULL[sage]   投稿日:2017/05/10 23:00:43
INNER JOINすれば済む話では

575
NAME IS NULL[sage]   投稿日:2017/05/10 23:27:46
>573
怖くて教えられない
なぜSQLを知らない人が仕事用のデータベースをいじろうとしているのか

576
NAME IS NULL[sage]   投稿日:2017/05/10 23:41:35
sqlなんて基本以来10年近くいじってないワイが適当回答すると
SELECT 社員.名前 FROM 社員情報 WHERE 社員.ID IN (SELECT 社員情報.社員ID FROM 社員情報 WHERE 社員情報.身長 >= 170)

577
NAME IS NULL[sage]   投稿日:2017/05/11 00:41:42
>568
こうかな?

SELECT 社員.名前
FROM 社員, 社員情報
WHERE 社員情報.身長 >= 170 AND
社員.社員ID = 社員情報.社員ID

578
NAME IS NULL[sage]   投稿日:2017/05/11 19:53:55
>568
社員IDで紐付いてるとかを勝手に想定してくれる訳じゃないので指定してやらないとな

SELECT 社員.名前
FROM 社員情報
INNER JOIN 社員 ON 社員情報.社員ID = 社員.社員ID
WHERE 社員情報.身長 >= 170

>570
機微な情報は別テーブルとか普通にあるだろ
コメント2件

579
NAME IS NULL[]   投稿日:2017/05/11 22:09:00
>578
機微な情報は別テーブルとかないし
別テーブルにする意味もないし
そもそも社員の名前は機微な情報ではない

まあ、お前のような多重に勘違いした独り善がりの馬鹿によって作られた
>568のような出来損ないのスキーマはたまに見かける

あ、勘違いしやすいみたいだから一応断っておくけど
これ褒めてるんじゃないからねw
コメント6件

580
NAME IS NULL[sage]   投稿日:2017/05/11 22:57:42
 
一応書いておくけど、

ここは初心者スレ

581
NAME IS NULL[sage]   投稿日:2017/05/11 23:30:48
大雑把な性格の俺的には、こうかな?

SELECT *
FROM *
LEFT JOIN *
ON * = *

582
NAME IS NULL[sage]   投稿日:2017/05/12 04:58:07
>579
> そもそも社員の名前は機微な情報ではない
ここまでバカだとは...
機微な情報の意味わかってないだろ w
コメント6件

583
NAME IS NULL[sage]   投稿日:2017/05/12 08:00:05
>582
もう一つ勘違いしてるみたいだけど
2ちゃんだって素直にありがとうって言ってもいいんだからね

584
NAME IS NULL[sage]   投稿日:2017/05/12 08:29:18
ありがとう2ch
>579 みたいなバカがいるってことを教えてくれて

これでいいかな w

585
NAME IS NULL[sage]   投稿日:2017/05/12 10:27:51
>582
機微な個人情報 JISQ15001:2006

・思想,信条又は宗教に関する事項
・人種,民族,門地,本籍地(所在都道府県に関する情報を除く。),身体・精神障害,犯罪歴その他社会的差別の原因となる事項
・勤労者の団結権,団体交渉その他団体行動の行為に関する事項
・集団示威行為への参加,請願権の行使その他の政治的権利の行使に関する事項
・保健医療又は性生活に関する事項
コメント2件

586
NAME IS NULL[sage]   投稿日:2017/05/12 10:38:02
俺の中では「普通にある」
俺の中ではな

587
NAME IS NULL[sage]   投稿日:2017/05/12 11:55:26
誰のマウンティングが決まるんか
興味深いw
コメント2件

588
NAME IS NULL[sage]   投稿日:2017/05/12 12:27:50
>585
それもそうだけど
>582はそもそも社員テーブルに社員名がない事の理不尽さに気がついていない

馬鹿がその視野の狭さ故に犯す誤りの典型だねw

589
NAME IS NULL[sage]   投稿日:2017/05/12 12:54:11
マウンティングとかアホなワードがバズったおかげで、>587みたいな馬鹿が出てくるんだよ

590
NAME IS NULL[sage]   投稿日:2017/05/12 13:09:41
>568
匿名かが簡単にできる、良いスキーマ

591
NAME IS NULL[sage]   投稿日:2017/05/12 15:41:27
お前わかってないだろ <− 根拠のないマウント

592
NAME IS NULL[sage]   投稿日:2017/05/12 18:40:02
>579
> 機微な情報は別テーブルとかないし
いや、あると思うよ。

> 別テーブルにする意味もないし
異なる読み取り権限を設定できる。

593
NAME IS NULL[sage]   投稿日:2017/05/12 19:54:33
機微な情報で氏名とか言い出すアホがいて笑える
どう見ても
> 社員情報
> 社員ID、血液型、生年月日、性別、身長
の方だろ

594
NAME IS NULL[sage]   投稿日:2017/05/12 21:23:59
名前は普通に公開されている情報だと思う

595
NAME IS NULL[sage]   投稿日:2017/05/12 22:16:38
schema.ini作るの面倒なんだけど、何とかならん?
テキストファイルにはIMEX=1も効かないし。
コメント2件

596
NAME IS NULL[sage]   投稿日:2017/05/12 23:05:00
>595
ローカルにdb入れて使う

597
NAME IS NULL[]   投稿日:2017/05/14 16:37:12
すみません、質問よろしいでしょうか

SELECT name,max(no)
from test;

これがエラーになるんですが何がいけないんでしょう?
noの最大値を持つ行のnameが知りたいだけなんですが……
コメント2件

598
NAME IS NULL[sage]   投稿日:2017/05/14 17:21:20
SELECT name, no FROM test WHERE no = (SELECT max(no) FROM test)

こうかな
コメント2件

599
NAME IS NULL[]   投稿日:2017/05/14 21:10:45
>597
group by name

を付ける
コメント2件

600
NAME IS NULL[sage]   投稿日:2017/05/15 11:10:24
>598さんのがまさに求めていたものでした!
whereかhavingで迷ってたんですがwhereだったんですね!
>599さんも本当にありがとうございました!

601
悪質オンラインショップ[]   投稿日:2017/05/15 13:56:08
サイズ違いの商品を送り 返品交換できない 悪質商法 ****E  
   
サイズ違いの商品を送り 返品交換できない 悪質商法 B**

悪質オンラインショップ



担当者が悪質か

2回目のでんわたんとう窓口は すりかえようで いみふにごまkして 

----------------------------------
**** *** オンラインショップのアイテムは独自の方法により採寸しておりますので、
全て実際の商品を計測した実寸サイズとなっております。
ご注文いただいております商品サイズは、正しいものでございます。

誠に恐れ入りますが、サイズが合わない、イメージと異なるといったご理由での
ご購入商品の返品・交換はお断りさせていただいております。

お客様のご希望にそう事が出来ず誠に申し訳ございませんが、
何卒ご了承の程よろしくお願い申し上げます。

----------------------------------

24いんちって Mですか? WEBの説明と実際の商品が違う

602
NAME IS NULL[age]   投稿日:2017/05/15 14:06:06
https://ccj.kokusen.go.jp/counterfeit/

悪質な通販サイトにご注意!|消費者庁越境消費者センター

603
NAME IS NULL[]   投稿日:2017/05/15 14:13:01
ろせぶd

604
NAME IS NULL[]   投稿日:2017/05/15 14:18:27

605
NAME IS NULL[sage]   投稿日:2017/05/15 22:04:09
今の会社があまりにもくだらなくて転職のためSQL覚えたい
今はExcelで簡単なVBA書いてる
独学でもどこかにまず入れるだろうか…
それとPostgreSQLとMySQLとどちらがいいのか教えてください
コメント2件

606
NAME IS NULL[sage]   投稿日:2017/05/15 22:20:38
>605
安心して
いま四種類同時に使ってるから

607
NAME IS NULL[sage]   投稿日:2017/05/15 22:22:08
4種類、じゃ全部視野に入れます
4つ教えてください
コメント2件

608
NAME IS NULL[sage]   投稿日:2017/05/15 22:42:51
標準SQLを覚えるならOracle Express Editionを入れて
alter session set flagger=entry; とか
コメント2件

609
NAME IS NULL[sage]   投稿日:2017/05/15 22:52:26
>607
oracle
srl server
mysql
postgres
コメント2件

610
NAME IS NULL[sage]   投稿日:2017/05/15 22:55:33
DB2も入れてやれ
Express-Cっていう無償のエディションもあるぞ
コメント2件

611
NAME IS NULL[sage]   投稿日:2017/05/15 23:16:49
>608>609>610
ありがとうございます!
もうVlookupひとつしか使えない人たちに便利屋扱いされたうえに勝手な都合でくだらない作業詰め込まれるのはゴメンです
最初から綺麗に無駄なく作っておけばいいのに…
でもそれを更に汚くしたのは短期で来た素人自称プログラマ
VBAばかり走らせて荒っぽい処理してエラー残骸があちこちあったり重複ばかりのファイルを量産してった
プログラム覚えてもああいう仕事は絶対したくないと思う
取っ掛かりとしてSQL覚えてその次Pythonとかも覚えたいです
絶対今のところ抜け出してやる
コメント2件

612
NAME IS NULL[sage]   投稿日:2017/05/15 23:19:03
>611
がんばれー
コメント2件

613
NAME IS NULL[sage]   投稿日:2017/05/15 23:22:55
>612
はい!
ありがとうございます

614
NAME IS NULL[]   投稿日:2017/05/16 17:20:38
すいません、質問させてください。
mySQLとSequel Proを使ってテーブルまで作成しています。

レコード登録時に、2つのIDをくっつけて
3つめのIDをSQL内で自動生成したいのですが、
何か効率的な方法はありますでしょうか。

ID1: 100(手入力)
ID2: 101(手入力)

ID3: 100101(自動生成)

データ型はいずれもINTで設定しております。
よろしくお願いします。
コメント4件

615
NAME IS NULL[sage]   投稿日:2017/05/16 17:56:29
>614
それ、2行登録したら1行自動生成するってこと?
コメント2件

616
NAME IS NULL[]   投稿日:2017/05/16 18:36:37
>614
行列、列行なのかわからない聞き方だが、それが列、カラムだと想定すると、トリガーでも作らないとできないだろうな。

同じレコードのカラムから導出したデータを別カラムで持つのも馬鹿っぽい。

しかも数値型を連結するなら、いったん文字型に変換しないといけない。

なんでそんなことをしたいのか。ID3なんてビューを作ってみせればいいんじゃないの?
コメント2件

617
NAME IS NULL[]   投稿日:2017/05/16 18:56:41
>615
>616
すいません、DBわかってなくて失礼しました。

ID1 ID2 ID3 name
100 101 100101 hoge
101 201 101201 fuga

ID1とID2を繋げて、ID3を生成したかったです。
プライマリキーとは別に、識別用としてのユニークなIDが必要なので。
単純に繋げるには、文字列でやらないとダメみたいですね。
ありがとうございます。

618
NAME IS NULL[sage]   投稿日:2017/05/16 18:57:13
ID2が2桁の時どうするの?
ID1と2と3は同じレコードのカラムなの?
手入力ってINSERT文書くの?
コメント2件

619
NAME IS NULL[sage]   投稿日:2017/05/16 18:59:58
lpad()で0埋めしてcontat で連結して castで数値にする手もあるけど
実行時に必要ならビューでいいよね
コメント2件

620
NAME IS NULL[]   投稿日:2017/05/16 19:14:46
>618
ID1, 2は3桁のものしか用意しないので基本的には問題ないかと。
すべて同じレコードのカラムですね。
先に手入力と書きましたが、実際はほぼクライアントツールの
インポート経由で登録になります。

>619
ビューってのがあるんですね、調べてみます。

ありがとうございます。
コメント4件

621
NAME IS NULL[]   投稿日:2017/05/16 23:30:43
>620
3桁で計算もしないなら、データ型が数値型なのは変だよ。
コメント2件

622
NAME IS NULL[sage]   投稿日:2017/05/17 06:52:26
>621
お前の根拠もない意見なんて聞いてねえから
コメント2件

623
NAME IS NULL[]   投稿日:2017/05/17 11:53:42
>622
初心者は数字は数値と思い込むのはよくあることだろ。

624
NAME IS NULL[sage]   投稿日:2017/05/17 12:21:15
なんの禅問答やそれ

625
NAME IS NULL[sage]   投稿日:2017/05/17 12:26:07
何でこんなに質問外の話を夢中になって始めるか、理解出来ない
コメント2件

626
NAME IS NULL[sage]   投稿日:2017/05/17 12:33:06
>625
初心者は質問内は質問外と思い込むのはよくあることだろ。

627
NAME IS NULL[sage]   投稿日:2017/05/17 21:02:17
>620
どちらも数値で桁数が3桁固定なら、ID1 * 1000 + ID2でどうだろうか

628
NAME IS NULL[sage]   投稿日:2017/05/18 10:55:50
number(string(id1) || string(id2))

629
NAME IS NULL[]   投稿日:2017/05/20 07:59:43
insert時かselect時に導出すればいいようなものをなんで別カラムで持ちたがるのか、理由をまったく言わないからなw

630
NAME IS NULL[sage]   投稿日:2017/05/21 00:12:32
新ギャグ考えたので聞いてください。

ななこSQL
コメント2件

631
NAME IS NULL[]   投稿日:2017/05/21 12:07:06
>630
おっさん乙

632
NAME IS NULL[]   投稿日:2017/05/21 19:24:12
何がギャグなのか、誰か解説頼む
コメント2件

633
NAME IS NULL[]   投稿日:2017/05/21 19:31:42
>632
ななこSOS

634
NAME IS NULL[sage]   投稿日:2017/05/21 23:20:12
マジレスしてくれた人、ありがとう

うううむ

635
ID:???.net[ まだやりたいこと読み切ってるわけじゃないが
ANDの部分をサブクエリにすれば同じ検索を2回書かなくて済みそうだね ]
  投稿日:0000/00/00 00:00:00

636
NAME IS NULL[sage]   投稿日:2017/05/23 13:50:09  ID:???.net(1523)
>637
それだとhogeしかない場合でもマッチしてしまうんじゃないか?

637
NAME IS NULL[sage]   投稿日:2017/05/23 18:50:28  ID:???.net(1523)
 where column1 || column2 || column3 like '%hoge%'
 and column1 || column2 || column3 like '%drz%'
でいいと思う(|| はDBごとに適切な文字列連結演算子に読み替えて)

部分一致じゃあどのみち普通のインデックスは使えないし
速度を出したいならちゃんとした全文検索機能のあるDBを使うべき
コメント6件

638
NAME IS NULL[sage]   投稿日:2017/05/23 20:05:04  ID:???.net(1523)
>635
WHERE column1 + ',' + column2 + ',' + column3 like '%hoge%' and column1 + ',' + column2 + ',' + column3 like '%drz%'

639
NAME IS NULL[sage]   投稿日:2017/05/23 20:07:29  ID:???.net(1523)
>641
それ column1 = 'ho', columu2 = 'ged', column3 = 'rz' でヒットしちゃうぞ

640
NAME IS NULL[sage]   投稿日:2017/05/23 20:11:47  ID:???.net(1523)
>643
連結する時に適当なセパレータ文字を挟めばいいやん。

641
NAME IS NULL[sage]   投稿日:2017/05/23 22:05:46  ID:???.net(1523)
>637
そういうもの。
対象のカラムやキーワードの数が変わっても困らないような動的クエリの仕組みに頭を使った方がいい。
コメント4件

642
NAME IS NULL[]   投稿日:2017/05/23 22:19:24  ID:zLCGMc7G.net(2)
>645
そもそもデータモデルがおかしいだろw
コメント4件

643
NAME IS NULL[sage]   投稿日:2017/05/23 23:28:42  ID:???.net(1523)
もしcolumn1/2/3が相互に交換可能なのだとしたら第一正規形ではないことになるが、
>637だけからはデータモデルがおかしいと断言はできんだろう。
コメント2件

644
NAME IS NULL[]   投稿日:2017/05/24 05:27:57  ID:LjZe7sN5.net(2)
no existか積集合演算子でできるが、このSELECT文がメインだったらデータモデルがおかしい。

645
NAME IS NULL[sage]   投稿日:2017/05/24 06:45:47  ID:???.net(1523)
データモデル厨は要らんよ
まあケチ付けたいだけなんだろうけど
コメント2件

646
NAME IS NULL[sage]   投稿日:2017/05/24 19:01:22  ID:???.net(1523)
フィールドを>641みたいに|| で文字列連結するのって、内部で何が起こってるんですか?
ORより速いんですかね?
ORより積極的に使った方がいいですか?

647
NAME IS NULL[sage]   投稿日:2017/05/24 20:52:05  ID:???.net(1523)
>650
使ってみてください

648
NAME IS NULL[sage]   投稿日:2017/05/24 22:34:09  ID:???.net(1523)
内部で何が起こってるのかを気にする必要がないのがSQLの良いところやで
実行速度が気になるんだったら自分で目的に最適化したDBを作ったほうが速い

649
NAME IS NULL[sage]   投稿日:2017/05/24 23:07:44  ID:???.net(1523)
まあそれは建前であって実際のところは内部動作もある程度知っていないと
使い物にならないことも多いからねえ
自動チューニング的な機能があったとしても
その機能自体がどのように動くのか知らないとやっぱり上手く使えなかったり

650
NAME IS NULL[sage]   投稿日:2017/05/24 23:09:38  ID:???.net(1523)
>642
返信遅くなってしまいすいません
文字列を連結させてればいいんですね、やってみます
コメント6件

651
NAME IS NULL[]   投稿日:2017/05/25 15:59:00
>650
内部ではいったんそういう表が作られて、それを検索している。

652
NAME IS NULL[sage]   投稿日:2017/05/25 16:53:17
>650
それぞれのカラムにインデックスがある場合。

まず、文字列を連結するとインデックスは使われません。
ORを使うと、全件検索(テーブルスキャン)よりもインデックスを使う方が速いと判断されれば
インデックスが使われます。

なので、ORが使えるならORを使うのがよいです。

さらに言うと、完全一致検索(hoge = 'aaa')と前方一致検索(hoge like 'aaa%')はインデックスが
使われますが、それ以外の場合(hoge = 'aaa%', hoge = '%aaa%')では、普通はインデックスは
使われません。(データベースの種類によっては、特殊なインデックスを作れるものもある)

653
NAME IS NULL[]   投稿日:2017/05/25 17:01:24
変なのがわいた

654
NAME IS NULL[sage]   投稿日:2017/05/25 17:05:31
>655の方が変だがなw

655
NAME IS NULL[]   投稿日:2017/05/25 17:06:50
>658
ではどのように処理しているのかご教示を。
コメント2件

656
NAME IS NULL[sage]   投稿日:2017/05/25 17:24:42
プランナーが全てそうやってるわけじゃねーだろ

657
NAME IS NULL[sage]   投稿日:2017/05/25 17:28:46
>659
ループしつつ文字列比較でフィルタリングでしょ
一時テーブルなんか作るメリットゼロ

658
NAME IS NULL[sage]   投稿日:2017/05/25 17:30:15
誰が言ってる事が正しいのですか?
コメント2件

659
NAME IS NULL[sage]   投稿日:2017/05/25 17:37:48
>662
一部を除いてみんな正しい

まとめると、
・レコード数が少ないなら文字列結合してLIKE検索しろ >642
・ORと文字列結合を比較するなら、ORの方がインデックスが使われるという面で優れている
・ただしLIKE検索の場合は、前方一致のみインデックスが使われる(普通は)
・普通じゃない方法は、データベース毎に異なる(フルテキスト検索用インデックスを作ったりとか)
コメント2件

660
NAME IS NULL[sage]   投稿日:2017/05/25 19:53:09
DBはMariaDBです
issueテーブルとissueConnectionテーブルがあります
こんな風にして、階層化された複数のイシューが連なる設計です(・・・あまり設計よくないかもです)

■issue
ID
(以下略)

■issueChildren
ID
issueID
childIssueID


あるイシューの子イシューを取得したい場合、たとえば100番の子イシューであれば

SELECT * FROM issue INNER JOIN issueChildren ON issue.ID = issueChildren.ID
WHERE issueChildren.issueID = 100;

でいいと思うのですが、孫まで含めてクエリーで取得したい場合はどうすればいいのでしょうか?
要件では子と孫まででOKで、ひ孫からは不要らしいです。

661
れないからチェックいるね []   投稿日:0000/00/00 00:00:00

662
NAME IS NULL[sage]   投稿日:2017/05/25 23:03:02  ID:???.net(1523)
>665
具体的にどう書けばいいですか?

>666
それはデータ的にはないようです
コメント2件

663
NAME IS NULL[sage]   投稿日:2017/05/25 23:49:12  ID:???.net(1523)
>667
実際にないなら良いんですけど
テーブル定義はそれを排除している訳ではないので

664
NAME IS NULL[sage]   投稿日:2017/05/27 18:40:58  ID:???.net(1523)
SQL ServerにはなんでTRIMが無いの?

665
NAME IS NULL[]   投稿日:2017/05/27 19:48:28  ID:EQg2arXb.net(2)
>669
さあね、RTRIM、LTRIMがあるからとりあえずいいだろうということなんだろ。
コメント2件

666
NAME IS NULL[sage]   投稿日:2017/05/30 23:02:19  ID:???.net(1523)
LTRIMって、やっぱエルトリム?
それともリトリム?
俺はどっちでもいいと思うんで、
どっちでもいいと思うんだけど。
コメント2件

667
NAME IS NULL[sage]   投稿日:2017/05/30 23:20:48  ID:???.net(1523)
テメェの好きなように呼べば良いだろ阿呆
コメント2件

668
NAME IS NULL[sage]   投稿日:2017/05/30 23:21:49  ID:???.net(1523)
リトリムだとRTRIMもリトリムになるし...
巻き舌とかで区別する?w

669
NAME IS NULL[sage]   投稿日:2017/05/30 23:28:29  ID:???.net(1523)
右トリム、左トリムで
コメント2件

670
NAME IS NULL[]   投稿日:2017/05/31 19:18:26  ID:HpzcWkU1.net(2)
レフトリ、ライトリってうちだけかよ

671
NAME IS NULL[]   投稿日:2017/05/31 20:17:10  ID:+YoAe/ot.net(2)
俺はアールトリム、エルトリムと呼んでいる。

672
NAME IS NULL[sage]   投稿日:2017/05/31 21:48:51  ID:???.net(1523)
僕はシリコンバレーだけど、
エルティーアールアイエムって呼んでる

673
NAME IS NULL[sage]   投稿日:2017/05/31 22:57:35  ID:???.net(1523)
うちのかあちゃん、
TRFを無理矢理トリフって読んだぞ。

674
NAME IS NULL[sage]   投稿日:2017/05/31 23:18:05  ID:???.net(1523)
SQLserver入れた
まずなにやろう

675
NAME IS NULL[]   投稿日:2017/06/01 07:34:14  ID:h3o9bmsv.net(2)
>679
アンインストール

676
NAME IS NULL[sage]   投稿日:2017/06/01 08:17:33  ID:???.net(1523)
>680
全く同じことを思った
結婚しようか

677
NAME IS NULL[sage]   投稿日:2017/06/01 14:22:43  ID:???.net(1523)
最強に性格悪い夫婦

678
NAME IS NULL[sage]   投稿日:2017/06/01 23:03:30  ID:???.net(1523)
♪いぃぃいぃぃいぃいぃぃぃいぃぃぃぃー

679
NAME IS NULL[sage]   投稿日:2017/06/06 22:32:19  ID:???.net(1523)
伝票ID、顧客名、売上金額、売上月というテーブルがあるとします
顧客毎の各売上月の合計を問い合わせしたい場合どうすればいいのでしょうか?
売上月、顧客名、合計金額という風に出したいですが、一つ一つ顧客名毎に問い合わせするしかないのでしょうか?
コメント2件

680
NAME IS NULL[sage]   投稿日:2017/06/06 22:44:19  ID:???.net(1523)

681
NAME IS NULL[]   投稿日:2017/06/06 23:17:47  ID:2nFS6UGQ.net(2)
>684
それぞれの顧客に電話して聞くしかないな。

682
NAME IS NULL[sage]   投稿日:2017/06/06 23:49:15  ID:???.net(1523)
select `顧客名`,`売上月`,sum(`売上金額`) as `合計金額` from TABLE
group by `顧客名`,`売上月`;

683
NAME IS NULL[]   投稿日:2017/06/07 06:22:26  ID:WkwCrNcL.net(2)
アポストロフィ?

684
NAME IS NULL[sage]   投稿日:2017/06/07 08:10:36  ID:???.net(1523)

685
NAME IS NULL[]   投稿日:2017/06/09 03:38:40  ID:LAO2WyDa.net(2)
バッククオートでないの?

686
NAME IS NULL[sage]   投稿日:2017/06/12 03:22:13  ID:???.net(1523)
アゲイン

teradataの識者いる?

687
NAME IS NULL[sage]   投稿日:2017/06/12 12:54:09  ID:???.net(1523)
SQLの神さま、み教えを!

二つのテーブルを比較し、複数項目(7項目)の値が全て合致した行の
1項目をアップデートをしたいのですが、長ったらしいSQLになってしまいます。

シンプルな記述で実現する方法は、ありますでしょうか?!

お願いします!

688
NAME IS NULL[]   投稿日:2017/06/12 12:54:49  ID:RxG+k+1Y.net(2)
m(_ _)m
お願いします!

689
NAME IS NULL[sage]   投稿日:2017/06/12 16:30:14  ID:???.net(1523)
長ったらしくならないので下手なことをせずそのままがいいように思う

690
NAME IS NULL[sage]   投稿日:2017/06/12 19:09:30  ID:???.net(1523)
Oracleだと
 where (a1, a2, ...) = (b1, b2, ...)
みたいに書けちゃうけどまあ普通は
 where a1 = b1 and a2 = b2 and ...
しかないな

691
NAME IS NULL[sage]   投稿日:2017/06/12 20:54:47  ID:???.net(1523)
>695
文字列にして連結して比較する作戦はどうかな?

692
NAME IS NULL[sage]   投稿日:2017/06/12 21:39:05  ID:???.net(1523)
>695
それNULL=NULLをどうするのかで問題がでる
NULLの項目があってそれをまじめに考えたら
結構長ったらしくはなる

693
NAME IS NULL[sage]   投稿日:2017/06/12 21:49:53  ID:???.net(1523)
SQL Serverです。

商品No 価格1 価格2 価格調整コード 調整価格
10000 1,000 1,100 001     200
10000 1,000 1,100 002    100
10000 1,000 1,100 003    100
12000 600 700 001    50
13000 800 850 001    100
13000 800 850 003    50

価格調整コードが'001'か'002'の場合は、
調整価格を価格1に加算し、
価格調整コードが'003'の場合は、
調整価格を価格2に加算する。
その結果を、商品Noから一意で取り出せるビューにしたい。

※イメージ
商品No 価格1(調整後) 価格2 (調整後)
10000 1,300 1,200
12000 650 700
13000 900 900

これをSQLだけで作ろうとしているのですが、無理でしょうか。

694
NAME IS NULL[sage]   投稿日:2017/06/12 21:51:57  ID:???.net(1523)
case when 価格調整コード = '001'などを入れて、
下記のようにしてみました。

商品No 価格1 価格2 価格調整コード 調整価格 001価格 002価格 003価格
10000 1,000 1,100 001 200 200 NULL NULL
10000 1,000 1,100 002 100 NULL 100 NULL
10000 1,000 1,100 003 100 NULL NULL 100
12000 600 700 001 50 50 NULL NULL
13000 800 850 001 100 100 NULL NULL
13000 800 850 003 50 NULL NULL 50

これを、001価格〜003価格のNULLの部分を統合して、
1行で表示できるイメージでもよいです。
※イメージ
商品No 価格1 価格2 価格調整コード 調整価格 001価格 002価格 003価格
10000 1,000 1,100 001 200 200 100 100
12000 600 700 001 50 50 NULL NULL
13000 800 850 001 100 100 NULL 50

プログラムができないため、SQL Management Studioで
SQLだけうって表示できればと思っています。

695
NAME IS NULL[sage]   投稿日:2017/06/12 22:50:34  ID:???.net(1523)
>698
>商品Noから一意で
それ、元価格が複数あったりしたらどうするんだよ

とりあえずそのデータでなら
select distinct
商品No,
価格1 + (select ISNULL(SUM(調整価格),0) from テーブル where 商品No=t.商品No and 価格調整コード in ('001','002')) as [価格1(調整後)],
価格2 + (select ISNULL(SUM(調整価格),0) from テーブル where 商品No=t.商品No and 価格調整コード in ('003') ) as [価格2(調整後)]
from テーブル t

で行けるんじゃね
コメント4件

696
NAME IS NULL[sage]   投稿日:2017/06/13 12:58:54  ID:???.net(1523)
>696
セパレータつけないと
'abc', 'de' と 'ab', 'cde' が一致しちゃう
絶対に値に含まれないセパレータがあるならいいけど
コメント1件

697
NAME IS NULL[sage]   投稿日:2017/06/13 13:14:09  ID:???.net(1523)
>698
「イメージ」じゃなくて、そのデータの完全な結果を示せ

698
NAME IS NULL[sage]   投稿日:2017/06/13 18:50:57  ID:???.net(1523)
>698
まだ設計変えられるんだったら、正規化した方がいいかもよ
コメント5件

699
NAME IS NULL[sage]   投稿日:2017/06/13 22:19:04  ID:???.net(1523)
また意味不明な「正規化」

700
NAME IS NULL[sage]   投稿日:2017/06/13 22:59:33  ID:???.net(1523)
結合した結果を表示してるのかもしれないし、そこはなんとも。

>704
意味不明なの?
コメント4件

701
NAME IS NULL[]   投稿日:2017/06/13 23:11:18  ID:yhROQb+J.net(2)
無理だと思ったらなんだって無理なんだよ
聞くならせめて「可能でしょうか」と聞け

702
NAME IS NULL[sage]   投稿日:2017/06/14 07:04:12  ID:???.net(1523)
> 意味不明なの?
>704 には
ってことでしょ
>700
> それ、元価格が複数あったりしたらどうするんだよ
を見たら普通正規化しろって思うと思うがまあここ初心者スレだから

703
NAME IS NULL[sage]   投稿日:2017/06/14 07:44:23  ID:???.net(1523)
>> それ、元価格が複数あったりしたらどうするんだよ
>を見たら普通正規化しろって思うと思うがまあここ初心者スレだから

それはクエリの話であって正規化とは全然関係ないな。

704
NAME IS NULL[sage]   投稿日:2017/06/14 08:10:11  ID:???.net(1523)
>700
ありがとうございました。これでできました!
元価格はひとつです。
いろいろご意見ありがとうございます。
最近勉強始めたもので、正規化などこれから勉強中です。
コメント4件

705
NAME IS NULL[sage]   投稿日:2017/06/14 08:19:49  ID:???.net(1523)
>708
> それはクエリの話であって正規化とは全然関係ないな。
全く理解してないのがよくわかる秀逸なレスだな w

706
NAME IS NULL[sage]   投稿日:2017/06/14 08:44:04  ID:???.net(1523)
価格1 価格2 というカラム名だけ見て脊髄反射で
「第一正規形じゃない」と思い込んじゃったんだろう。

707
NAME IS NULL[sage]   投稿日:2017/06/14 10:47:57  ID:???.net(1523)
>711
商品テーブル: {商品No}, 価格1, 価格2 ({ }はPK)
調整価格テーブル: {商品No, 調整コード}, 調整価格

ってことじゃないの?ってことだろ

708
NAME IS NULL[]   投稿日:2017/06/14 12:18:18  ID:22bTQ0Ls.net(2)
SQLの神さま!
非正規化テーブルから
正規化テーブル1、正規化テーブル2へ
同時にインサートする時に、
正規化テーブル1、2それぞれに同じ連番を振りたいのですが、
シンプルな方法はありますでしょうか?

ちなみに連番フィールドは、主キーです。
コメント2件

709
NAME IS NULL[]   投稿日:2017/06/14 12:47:47  ID:egtOOHVa.net(2)
また意味不明な「非正規化」

710
NAME IS NULL[sage]   投稿日:2017/06/14 12:54:14  ID:???.net(1523)
>711
アホすぎる w

>712
だよね

711
NAME IS NULL[sage]   投稿日:2017/06/14 13:35:44  ID:???.net(1523)
>713
シンプルな方法を聞く前に、データベース設計の入門書をまず嫁
コメント4件

712
NAME IS NULL[sage]   投稿日:2017/06/14 18:10:33  ID:???.net(1523)
>713
RDBMSによると思うので使ってるもの書いてくれ
コメント2件

713
NAME IS NULL[]   投稿日:2017/06/15 00:18:57  ID:/yb/PIsQ.net(4)
質問ですが
カラムに  
[年齢]、[種別]、[時間]
があったとした場合に  [時間] の最新の100件だけを対象に合計、平均を出したいと思っています。
↓ に何を追加したら何を追加したらいいでしょうか?


SELECT SUM(年齢) AS 年齢の合計 , AVG(年齢) AS 年齢の平均 , 種別
FROM 従業員マスタ
GROUP BY 種別
コメント4件

714
NAME IS NULL[sage]   投稿日:2017/06/15 00:36:32  ID:???.net(1523)
fromを、limitとかoffsetとか使ったサブクエリにすれば良いんじゃね

715
NAME IS NULL[]   投稿日:2017/06/15 00:56:23  ID:/yb/PIsQ.net(4)
>719
limit と offsetを使ったら簡単にできそうですね。
まったく知らなかったので助かりました。ありがとうございました。

716
NAME IS NULL[sage]   投稿日:2017/06/15 01:11:37  ID:???.net(1523)
年齢の合計というのは、始めて見たw

717
NAME IS NULL[sage]   投稿日:2017/06/15 12:13:49  ID:???.net(1523)
年齢なんか合計してどうすんだ?年齢層を知りたいなら平均で判りそうなもんだが

718
NAME IS NULL[sage]   投稿日:2017/06/15 12:21:39  ID:???.net(1523)
意味のない数字出力すんなや

719
NAME IS NULL[]   投稿日:2017/06/15 12:27:45  ID:6L/hThIQ.net(2)
1000歳野球みたいなのあるだろ無知どもめ
コメント2件

720
NAME IS NULL[sage]   投稿日:2017/06/15 12:33:50  ID:???.net(1523)
対抗戦のチームで年齢合計を条件にすることありそうなw

721
NAME IS NULL[sage]   投稿日:2017/06/18 12:30:04  ID:???.net(1523)
SQL serverはマイクロソフトのデータベースだよね?
ただSQLっていったら何になるのでしょうか??

722
NAME IS NULL[sage]   投稿日:2017/06/18 12:49:53  ID:???.net(1523)
>726
iee

723
NAME IS NULL[]   投稿日:2017/06/18 13:26:42  ID:CR3oQu8v.net(4)
>726
リレーショナルデータベース製品のことを言っているなら、SQL Serverを「SQL」と呼ぶ人間もいるし、MySQLのことをただ「SQL」と呼ぶ人間もいる。

どちらの略し方もお勧めしない。

724
NAME IS NULL[]   投稿日:2017/06/18 14:37:13  ID:c1GtVOfY.net(30)
製品名が「SQL」が入ってるんだからどちらも自然な略し方じゃないか
他人の略し方をとやかく言うな

725
NAME IS NULL[sage]   投稿日:2017/06/18 14:39:54  ID:???.net(1523)
すごい混乱するんだよね
ちゃんとまだ理解してないから
SQLserverからSQL文でデータを抽出するって自分は思ってるけど違う
またはSQLserverからMysqlを使ってデータを取得する、とか

混乱のポイントはSQLserverをデータベースじゃなくてMysql とかPostgresqlと並列で捉えて話している人とコミニュケーション取っていること

途中で頭混乱して何がなんだかわからなくなる

まとめると
SQLserverやOracleはデータベース名
ゆえにプログラミング言語じゃない、でいいかな?

726
NAME IS NULL[sage]   投稿日:2017/06/18 14:40:13  ID:???.net(1523)
オラクルはSQLではありません
コメント4件

727
NAME IS NULL[sage]   投稿日:2017/06/18 14:40:42  ID:???.net(1523)
SQLserverからSQL文でデータを抽出するって自分は思ってるけど違う?

疑問形でした

728
NAME IS NULL[sage]   投稿日:2017/06/18 14:41:31  ID:???.net(1523)
>731
ORACLEはデータベースで、という意味であえてSQLserverと並べたんだけど

729
NAME IS NULL[sage]   投稿日:2017/06/18 14:42:36  ID:???.net(1523)
どなたかすっきりと正しい定義を書いてもらえないでしょうか?
検索してもそれぞれ少しずつ違い混乱してる…

730
NAME IS NULL[sage]   投稿日:2017/06/18 14:48:25  ID:???.net(1523)
>SQLserverからMysqlを使ってデータを取得する、とか

何言ってんだ?

731
NAME IS NULL[]   投稿日:2017/06/18 14:49:42  ID:c1GtVOfY.net(30)
「sql server」
SQLを理解するインタープリターサービスを提供するサーバー型アプリケーションの総称

「SQL Server」
Microsoft社が製造・販売を行なうRDBMS製品
コメント2件

732
NAME IS NULL[sage]   投稿日:2017/06/18 14:50:03  ID:???.net(1523)
>733
正確にはDBMS

733
NAME IS NULL[sage]   投稿日:2017/06/18 14:52:39  ID:???.net(1523)
>735
だからじゃあ訂正してよ
コメント2件

734
NAME IS NULL[sage]   投稿日:2017/06/18 14:54:52  ID:???.net(1523)
>738
はぁ?

SQLserverからsqlを使ってデータを取得する
だったら判るよ
MySQLはまた別個のRDBだろ?お前馬鹿?

735
NAME IS NULL[sage]   投稿日:2017/06/18 14:55:58  ID:???.net(1523)
>738
訂正しようがないわwww
コメント2件

736
NAME IS NULL[sage]   投稿日:2017/06/18 14:56:32  ID:???.net(1523)
>736
じゃあデータベース自体は他にあると思っていいの?
コメント1件

737
NAME IS NULL[sage]   投稿日:2017/06/18 14:57:26  ID:???.net(1523)
煽るだけでスマートな答え方しない人は説明できないんでしよ?

738
NAME IS NULL[sage]   投稿日:2017/06/18 14:59:10  ID:???.net(1523)
>741
「データベース」ってのはただのデータの集合を示す概念
コメント4件

739
NAME IS NULL[sage]   投稿日:2017/06/18 15:00:38  ID:???.net(1523)
じゃあ
RDBMSという括りの中に並列して
SQLserverもMySQLもpostgresqlもあると思っていいんでしょ?

740
NAME IS NULL[]   投稿日:2017/06/18 15:00:44  ID:c1GtVOfY.net(30)
>741
データベースとは読んで字のごとくデータの事でありソフトウェアはあくまでもデータベースを利用・管理するためのものだけど?
「テキストファイルで作文書く」って変だろ?

741
NAME IS NULL[sage]   投稿日:2017/06/18 15:01:08  ID:???.net(1523)

742
NAME IS NULL[sage]   投稿日:2017/06/18 15:04:24  ID:???.net(1523)
>743
わかった
データベース自体はなんとかってメーカー名とかはつかないってこと?

743
NAME IS NULL[sage]   投稿日:2017/06/18 15:05:47  ID:???.net(1523)
>746
わかった
ありがと
全部それぞれ親戚だけど少しずつ違う言語と思えばいい?
コメント2件

744
NAME IS NULL[sage]   投稿日:2017/06/18 15:09:00  ID:???.net(1523)
うちの会社はデータベースに独自の名前つけてるからそれがメーカー名製品名なのかと思ってたんだ
でもその大元がoracleでそれを企業用カスタマイズしてて、だからoracleがデータベースというのかと思ってた
それと同じにms SQLserverも考えてた
コメント2件

745
NAME IS NULL[sage]   投稿日:2017/06/18 15:10:06  ID:???.net(1523)
そのレベルの話ならここで質問するよりWikipediaとかで調べた方が
嫌な気分にならなくてお互いハッピーだと思うぞ。

746
NAME IS NULL[sage]   投稿日:2017/06/18 15:10:55  ID:???.net(1523)
>748
ごちゃごちゃ考える前になんで入門書の一つも読もうと思わんの?
コメント2件

747
NAME IS NULL[sage]   投稿日:2017/06/18 15:14:21  ID:???.net(1523)
そう思ってとりあえず本も買ったんだけど、そもそものところに帰ってきた
wikiも読んだ
けど会社で説明受けてまた混乱してきて
たぶんいろいろ略してる人で

ちょっと余談だけど、どうもソートを抽出の意味で使ってくるんだよ
Excelでもオートフィルタでデータ絞る時にソートして、って言ってくる
はーっ???となる
ソートは並べ替えだろ?

もう説明がめちゃくちゃで脳内変換しながらですげー疲れる
コメント2件

748
NAME IS NULL[sage]   投稿日:2017/06/18 15:16:38  ID:???.net(1523)
ちょっと不安になってきたんだけど
どう考えたって
ソート=並べ替え
でオートフィルタで絞ることじゃないよな?
もう当たり前過ぎて聞いてて馬鹿馬鹿しくなるんだけど、その人に仕事教わった人はみんなフィルタ機能をソートするって言うんだよ
自分ひとり、はっ??となって
あまり続くと自信なくなってくる
コメント4件

749
NAME IS NULL[sage]   投稿日:2017/06/18 15:17:36  ID:???.net(1523)
>747
データベース(データの集合)を扱うためのソフトウェアがDBMS。これがOracleとかSQL server。

750
NAME IS NULL[sage]   投稿日:2017/06/18 15:17:53  ID:???.net(1523)
まぁ用語の使い方がデタラメな連中が多くて混乱するってのは同情するけどさw

751
NAME IS NULL[sage]   投稿日:2017/06/18 15:19:24  ID:???.net(1523)
>754
うん
わかってきた
ありがと

752
NAME IS NULL[sage]   投稿日:2017/06/18 15:19:41  ID:???.net(1523)
>748
それぞれのDBMSで使うSQLはSQL標準に準拠してはいるんだけど、DBMSによって多少方言はある

753
NAME IS NULL[sage]   投稿日:2017/06/18 15:20:45  ID:???.net(1523)
脳内変換してるんだけど、いつか変換しなくてよかったのにー的間違いしそうで疲労がすごい

754
NAME IS NULL[sage]   投稿日:2017/06/18 15:23:46  ID:???.net(1523)
>757
おけ
ここらへんになれば確かに買った本に書いてある通りだ

これ買った
http://www.amazon.co.jp/dp/4798144452/
コメント2件

755
NAME IS NULL[sage]   投稿日:2017/06/18 15:24:21  ID:???.net(1523)
リンク失敗…

756
NAME IS NULL[sage]   投稿日:2017/06/18 15:29:41  ID:???.net(1523)
は?と思ったそのときにどういう意味か確認すりゃいいのに。

一応プログラミングじゃソート=並べ替えが普通だけど、一般には分類、選別っていう意味もあるからな。

757
NAME IS NULL[sage]   投稿日:2017/06/18 15:36:24  ID:???.net(1523)
>761
んーできてたらするんだけどさ
できない空気なわけで…

そう広義では近しいから突っ込みにくい
けど明らかに絞りなんだよな…
はぁーどっかでしれっと質問するわ
コメント2件

758
NAME IS NULL[sage]   投稿日:2017/06/18 15:47:05  ID:???.net(1523)
教えてくれた人ありがとです

759
NAME IS NULL[sage]   投稿日:2017/06/18 16:11:11  ID:???.net(1523)
お願いあるんだけど、質問する時は、出来るだけアゲて欲しい
そうするとID表示されるので、質問者のレスを追いかけやすい
誰が質問し誰が回答しているか分からなくなるとちょっと困る

760
NAME IS NULL[]   投稿日:2017/06/18 16:43:41  ID:c1GtVOfY.net(30)
いつだってアゲアゲでいいじゃんか
むしろなんのためにわざわざさげんだよカス

761
NAME IS NULL[]   投稿日:2017/06/18 18:37:58  ID:CR3oQu8v.net(4)
日本マイクロソフトの人間もSQL ServerをSQLと略すやつがいるんだよな。

SQLのことはクエリやコマンドと呼ぶから混乱しないw
コメント2件

762
NAME IS NULL[sage]   投稿日:2017/06/18 18:49:11  ID:???.net(1523)
>766
じゃあどう言うのが望ましい?

763
NAME IS NULL[sage]   投稿日:2017/06/18 18:52:15  ID:???.net(1523)
MSSQLかSQL Serverなら混乱しないよね

764
NAME IS NULL[sage]   投稿日:2017/06/18 18:58:17  ID:???.net(1523)
>768
あーなら単にsqlならせめてsql文とかそういうこと?

765
NAME IS NULL[sage]   投稿日:2017/06/18 19:15:22  ID:???.net(1523)
上で質問連打してたやつ
誰も決め手を書いてあげないからなかなか納得いかなかったようだが
SQL=言語と言ってあげればいいじゃん
それが日本語なのか英語なのかフランス語なのかそういう違いだって
日本語で卵ちょうだいっていうのと英語で卵ちょうだいは言葉が違うでしょ?って

766
NAME IS NULL[]   投稿日:2017/06/18 19:20:57  ID:c1GtVOfY.net(30)
>770
いやだからSQLはSQL Serverの略だってば
コメント2件

767
NAME IS NULL[sage]   投稿日:2017/06/18 19:23:00  ID:???.net(1523)
>771
だからお主はそのつもりでも
そうじゃないやつがいるから混乱すんだべ
クエリをsqlっていう奴がいるから

768
NAME IS NULL[sage]   投稿日:2017/06/18 19:32:11  ID:???.net(1523)
お題
「どなたかSQLを共有してくれますか?」
というメールが流れた
これはなんぞ?
コメント4件

769
NAME IS NULL[sage]   投稿日:2017/06/18 19:41:05  ID:???.net(1523)
>769
単にSQLなら問い合わせ言語のことだなぁ
あえて明示的に区別したいならSQL文だろうけど

データベースを集積されたデータとそれを操作するアプリケーションとで区別したいなら後者をDBMSと言うべきだけど前者は普通にデータベースって言うでしょみたいな
コメント1件

770
NAME IS NULL[]   投稿日:2017/06/18 19:41:40  ID:c1GtVOfY.net(30)
>772
知るか他人のことなんかw
混乱してるなら混乱したままの現状を理解しろよw
コメント4件

771
NAME IS NULL[sage]   投稿日:2017/06/18 19:43:08  ID:???.net(1523)
>773
そいつに聞け。
コメント6件

772
NAME IS NULL[sage]   投稿日:2017/06/18 19:51:32  ID:???.net(1523)
正しくはクエリを共有、だよな
コメント2件

773
NAME IS NULL[]   投稿日:2017/06/18 20:04:48  ID:c1GtVOfY.net(30)
>777
それでも意味がわからんのだが?w
コメント2件

774
NAME IS NULL[sage]   投稿日:2017/06/18 20:11:19  ID:???.net(1523)
>778
だからわかんない中で意味を汲み取れよー
なんだろ?w
コメント2件

775
NAME IS NULL[]   投稿日:2017/06/18 20:16:42  ID:c1GtVOfY.net(30)
>779
混乱してる事と元々意味が通らない事では天と地ほどのひらきがあるぞw
そうゆーとこ区別しようなw

776
NAME IS NULL[sage]   投稿日:2017/06/18 20:25:02  ID:???.net(1523)
>780
そりゃ言葉尻だ

777
NAME IS NULL[sage]   投稿日:2017/06/18 20:25:47  ID:???.net(1523)
自分では提言しないのなw
コメント2件

778
NAME IS NULL[sage]   投稿日:2017/06/18 20:32:12  ID:???.net(1523)
これだけ誰もスッキリ言えないSQLってなんなの?
コメント2件

779
NAME IS NULL[sage]   投稿日:2017/06/18 20:33:42  ID:???.net(1523)
>正しくはクエリを共有

まったく意味ワカンネ
コメント2件

780
NAME IS NULL[sage]   投稿日:2017/06/18 20:47:37  ID:???.net(1523)
>783
情けねっす
コメント2件

781
NAME IS NULL[sage]   投稿日:2017/06/18 20:50:28  ID:???.net(1523)
まずほんとに自分のも子供も大事にすんなら
2ちゃんなんか見ないだろうからな
見てる時点でクズ

782
NAME IS NULL[sage]   投稿日:2017/06/18 20:52:14  ID:???.net(1523)
??

783
NAME IS NULL[]   投稿日:2017/06/18 20:53:15  ID:FkALiZdC.net(2)
>774
DBMSはデータベース管理システムのことだぞ?
コメント2件

784
NAME IS NULL[sage]   投稿日:2017/06/18 20:57:57  ID:???.net(1523)
>788
ナニガダメ??

785
NAME IS NULL[sage]   投稿日:2017/06/18 21:02:05  ID:???.net(1523)
>771
何言ってんのこいつ?

786
NAME IS NULL[sage]   投稿日:2017/06/18 21:06:47  ID:???.net(1523)
>790
だよな
なんか通じないんだよこの人

787
NAME IS NULL[]   投稿日:2017/06/18 21:48:08  ID:c1GtVOfY.net(30)
>790-791
通じるわけないだろお前のオレオレ定義なんかw
普通に勉強してくださいw

788
NAME IS NULL[sage]   投稿日:2017/06/18 21:50:53  ID:???.net(1523)
>792
そっくりそのまま返すわキチガイ
コメント2件

789
NAME IS NULL[sage]   投稿日:2017/06/18 21:51:11  ID:???.net(1523)
>792
普通に勉強してくださいwww

790
NAME IS NULL[sage]   投稿日:2017/06/18 21:51:31  ID:???.net(1523)
>792
顔真っ赤
コメント4件

791
NAME IS NULL[sage]   投稿日:2017/06/18 21:59:15  ID:???.net(1523)
ただSQLって言ったらmysql,sqlserver,postgresql他含めそれぞれの言語いうものと思ってきた

SQL=SQLserverとは即ならないんだが…

もちろんSQLserverを用いてる環境で話してるなら別だがこういうとこではすぐにそのMS社製品だけを特定して結びつけないが…

なんかおかしいだろうか?

792
NAME IS NULL[sage]   投稿日:2017/06/18 22:00:02  ID:???.net(1523)
>SQLはSQL Serverの略だってば

ドヤ顔でこういうの会社でも言ってんだろーなー
コメント6件

793
NAME IS NULL[]   投稿日:2017/06/18 22:02:37  ID:c1GtVOfY.net(30)
どんだけ悔しいんだよw

794
NAME IS NULL[sage]   投稿日:2017/06/18 22:03:59  ID:???.net(1523)
>768
これ正しいね

795
NAME IS NULL[sage]   投稿日:2017/06/18 22:06:31  ID:???.net(1523)
>771
だったらmysqlはsqlとは言えなくなるよ

796
NAME IS NULL[sage]   投稿日:2017/06/18 22:13:23  ID:???.net(1523)
>800
まいしぃーける
こう読んであげて

797
NAME IS NULL[]   投稿日:2017/06/18 22:16:30  ID:c1GtVOfY.net(30)
>800
はあ?MySQLはSQLだろw
なんだよ言えなくなるってw

798
NAME IS NULL[sage]   投稿日:2017/06/18 22:19:34  ID:???.net(1523)
>802
mariaDBは?

799
NAME IS NULL[sage]   投稿日:2017/06/18 22:23:09  ID:???.net(1523)
>802
もういいから消えな

800
NAME IS NULL[sage]   投稿日:2017/06/18 22:23:24  ID:???.net(1523)
>802
おまいさんがこれ言ったからだろ

0770 NAME IS NULL 2017/06/18 19:20:57
>770
いやだからSQLはSQL Serverの略だってば
ID:c1GtVOfY(5/11)
コメント4件

801
NAME IS NULL[sage]   投稿日:2017/06/18 22:23:56  ID:???.net(1523)
>802
初心者スレやでここは
キチガイは出ていきな
コメント2件

802
NAME IS NULL[sage]   投稿日:2017/06/18 22:25:01  ID:???.net(1523)
ID:c1GtVOfY

言ってること支離滅裂になってきてるけどだいじょぶか?
日曜の夜だから酒でも飲んでだいぶ酔ってるんじゃ?
コメント8件

803
NAME IS NULL[sage]   投稿日:2017/06/18 22:25:38  ID:???.net(1523)

804
NAME IS NULL[]   投稿日:2017/06/18 22:25:53  ID:c1GtVOfY.net(30)
>803
多数派はマリアだろうな
SQL Serverをサーバーと略す一派ならDBと言うかも知れんがw

805
NAME IS NULL[sage]   投稿日:2017/06/18 22:34:11  ID:???.net(1523)
>809
いやおかしいでしょ
SQLserver=SQLって言ってたじゃん
つかw
そううえサーバーっておかし過ぎだよ
DBって…
大丈夫この人?

806
NAME IS NULL[sage]   投稿日:2017/06/18 22:36:12  ID:???.net(1523)
>810
キチガイやで

807
NAME IS NULL[sage]   投稿日:2017/06/18 22:37:12  ID:???.net(1523)
お前らのまだ概念とアダ名で
ごちゃごちゃいってるのw

808
NAME IS NULL[sage]   投稿日:2017/06/18 22:37:36  ID:???.net(1523)
サーバーはないよな…
ビール??

809
NAME IS NULL[sage]   投稿日:2017/06/18 22:38:08  ID:???.net(1523)
>812
ごちゃごちゃ言ってるのは一人のようだが
コメント4件

810
NAME IS NULL[sage]   投稿日:2017/06/18 22:38:51  ID:???.net(1523)
>809
サーバーwwwウケるwww
とか言えば満足かい?
コメント4件

811
NAME IS NULL[sage]   投稿日:2017/06/18 22:39:24  ID:???.net(1523)
>812
ほんじゃ超初心者に
SQL=SQLserverと指南し
その挙句場合によっては
SQLserverをサーバーと略すってそりゃやべーだろ

812
NAME IS NULL[]   投稿日:2017/06/18 22:41:14  ID:c1GtVOfY.net(30)
>810
知るかよw
どう略すかなんてそいつの感性次第なんだからw
そこにやたら食いつくお前がどうかしてる
現実を受け入れろw
コメント4件

813
NAME IS NULL[sage]   投稿日:2017/06/18 22:41:59  ID:???.net(1523)
>817
うんお前の感性がおかしい

814
NAME IS NULL[sage]   投稿日:2017/06/18 22:45:50  ID:???.net(1523)
>818
こういうのが職場で話通じないやつの実態なんだって見せてもらった気分だよ
いるんだよ、どこまでも平行線なやつ
アイタタ…

815
NAME IS NULL[]   投稿日:2017/06/18 22:47:32  ID:c1GtVOfY.net(30)
>818
つまりお前は他人の感性がおかしく感じるから
自分の感性に合わせろと言いたいのか?
無理だろそんなもんw
てかよくそんな無駄な事にここまで労力使えるなお前w

816
NAME IS NULL[sage]   投稿日:2017/06/18 22:49:02  ID:???.net(1523)
>819
あ、これは>818への同意な

817
NAME IS NULL[sage]   投稿日:2017/06/18 22:49:35  ID:???.net(1523)
>819
ヤバイよねこいつ
コメント2件

818
NAME IS NULL[sage]   投稿日:2017/06/18 22:50:21  ID:???.net(1523)
>820
顔真っ赤www
コメント6件

819
NAME IS NULL[sage]   投稿日:2017/06/18 22:52:40  ID:???.net(1523)
>820
あんね、オレは817じゃないけど
感性感性ってさ、一応言語で確認する訳なんで通じなかったら意味ないのよ、って
なんでこんな小学生でもわかること説明してんだおいっ
ここはひまわり学級かっ

だったらあんたいきなりエマニュエルの件だけど、って言われてわかるか?
コメント4件

820
NAME IS NULL[]   投稿日:2017/06/18 22:54:04  ID:c1GtVOfY.net(30)
色んなやつが居ることを認める事をどうしてここまで悔しがる必要があるのかw
おもしれー奴だなコイツw
コメント4件

821
NAME IS NULL[sage]   投稿日:2017/06/18 22:54:06  ID:???.net(1523)
昼間その呼び方で混乱してた初心者
明日会社で恥かくぞ…

822
NAME IS NULL[sage]   投稿日:2017/06/18 22:54:41  ID:???.net(1523)
>825
だからわかんのか答えてみて
エマニュエルの件

823
NAME IS NULL[sage]   投稿日:2017/06/18 22:55:28  ID:???.net(1523)
言い方に幅があるからこそ最大公約数で確認してくんだろうが、まったく…

824
NAME IS NULL[sage]   投稿日:2017/06/18 22:56:13  ID:???.net(1523)
>825
答えて、エマニュエルの件

825
NAME IS NULL[sage]   投稿日:2017/06/18 23:04:32  ID:???.net(1523)
>色んなやつが居ることを認める事をどうしてここまで悔しがる必要があるのかw

そういうのは共通の言葉が通じた上での話。
あんたはそれ以前
コメント4件

826
NAME IS NULL[sage]   投稿日:2017/06/18 23:08:48  ID:???.net(1523)
これじゃわかんないのが人の感性なんだよ
ドナルドって言われたらどこに思考がいく?
マクドナルドか?トランプか?
今なら一瞬考えてトランプだよな
オバマって言われたら一発でわかるよな
だから今はエマニュエルならマクロンなんだよ

おまえさんの言ってんのはその前振りが無い状態で、いきなりエマニュエルの件って言って周りが理解してくれないのを責められて、
んだよっ、マクロンて言えよと突っ込まれても、感性の違いだ、と言い張ってるのと同じなんだよ

827
NAME IS NULL[sage]   投稿日:2017/06/18 23:09:48  ID:???.net(1523)
>829
Aマニュアルは右棚

828
NAME IS NULL[sage]   投稿日:2017/06/18 23:13:24  ID:???.net(1523)
>832
山田くーん、座布団いちまいあげてー

あー、やっぱり持ってっちゃいなさい

829
NAME IS NULL[sage]   投稿日:2017/06/19 00:25:57  ID:???.net(1523)
すくなくともこのスレやSQL質疑応答スレで、SQL ServerをSQLと略すような奴の話は
まともに聞いちゃ駄目

感性がまともかどうかは置いとくが
その略しかたでは話が通りにくくなる事が理解できないやつなのは確かだから
コメント2件

830
NAME IS NULL[sage]   投稿日:2017/06/19 05:38:45  ID:???.net(1523)
教えて下さい
postgesql 9.3を使っています。

テーブルに
year
month
day
type
data
というカラムが設定されています。

select data from テーブル where year=2017 and month=1 and day=1 and type='a';
select data from テーブル where year=2017 and month=1 and day=1 and type='b';

これを1つの命令で type='a'の時のdata と 'b'の時のdata をまとめて出力したいのですが
どうしたらいいでしょうか?

select type=aのdata , type=bのdata from テーブル where ...

という感じの命令にしたいです
unionというものが使えそうだと思ったのですが、どちらがtype=aのものか判別の仕方がわからなかったです。

831
NAME IS NULL[sage]   投稿日:2017/06/19 06:00:35  ID:???.net(1523)
select type, data from テーブル where year=2017 and month=1 and day=1 and (type='a' or type ='b');
じゃダメなのか?

832
NAME IS NULL[]   投稿日:2017/06/19 06:07:09  ID:yMVixfUz.net(4)
>834
そう思うだろ?ところがまともな回答してんも俺だけなんだよなあ
コメント2件

833
NAME IS NULL[sage]   投稿日:2017/06/19 06:20:33  ID:???.net(1523)
>837
このひと つくづくダメな人みたい

834
NAME IS NULL[]   投稿日:2017/06/19 06:37:08  ID:gwyUxO6k.net(4)
>835
なんのためのSQLなのか言ってくれ。
コメント2件

835
NAME IS NULL[]   投稿日:2017/06/19 07:51:05  ID:yMVixfUz.net(4)
>838
俺をダメ認定するのはお前の勝手だけどそれでお前の能力が上がるわけでもないぞ?
むしろ自己満足のために周囲の評価は下がる方向だけどいいんかそれで?w
コメント4件

836
834[sage]   投稿日:2017/06/19 08:03:49  ID:???.net(1523)
>836
返信ありがとうございます。
type a と type b で同一の年月日で別の data を持つ為、それを同時に出したいのです。
ですので、それではダメでした。

>839
カレンダー表示させる為のSQLです。
日毎にtype a の data と type b の data を表にしたいのですが、
できれば年月日を一回のループで終わらせたいのです。
コメント1件

837
NAME IS NULL[sage]   投稿日:2017/06/19 08:38:40  ID:???.net(1523)
今時年月日を別々に持つとか釣りなんだろうか?
コメント2件

838
834[sage]   投稿日:2017/06/19 09:27:16  ID:???.net(1523)
ごめんなさい。自己解決しました

select t1.data , ( select t2.data from テーブル as t2 where year = 2017 and month = 1 and day = 1 and type = 'b' )
from テーブル as t1 where year = 2017 and month = 1 and day = 1 and type = 'a'

でいけました
もっと簡単に書けるかもしれませんが、一旦これで済ませます
助言ありがとうございました
コメント2件

839
NAME IS NULL[sage]   投稿日:2017/06/19 09:40:44  ID:???.net(1523)
>843
これみて設問見返すと
腹立つ
コメント2件

840
NAME IS NULL[sage]   投稿日:2017/06/19 10:00:49  ID:???.net(1523)
蠣殻囓ろう
コメント2件

841
NAME IS NULL[sage]   投稿日:2017/06/19 15:19:31  ID:???.net(1523)
>835
SELECT year, month, day,
MAX(CASE WHEN type = 'a' THEN data END) as data_a,
MAX(CASE WHEN type = 'b' THEN data END) as data_b
FROM foo
GROUP BY year, month, day

842
NAME IS NULL[sage]   投稿日:2017/06/19 15:34:11  ID:???.net(1523)
fromの段階で2017年1月1日までは絞り込んじゃいかんの?
あとはCASE式でわければいいし

843
NAME IS NULL[sage]   投稿日:2017/06/19 15:45:36  ID:???.net(1523)
>847
クエリ1回で1ヶ月分だかの範囲取得したいんじゃないの?
しらんけど
コメント4件

844
NAME IS NULL[]   投稿日:2017/06/19 15:53:00  ID:46JrC3Lz.net(2)
>843
ちょっと悪い書き方だな。

だいたいSELECT句でtype列を選択してはいけない理由は何なのか?

845
NAME IS NULL[]   投稿日:2017/06/19 20:47:59  ID:RxgVhLV5.net(2)
>849
ちょっとぐらい気にすんな

846
NAME IS NULL[]   投稿日:2017/06/19 22:29:58  ID:gwyUxO6k.net(4)
>850
これがプログラムが大騒ぎだけどなw

847
NAME IS NULL[sage]   投稿日:2017/06/20 10:44:06  ID:???.net(1523)
>840
自分の客観的な評価を知ることができたとは思わないんだろうか
コメント2件

848
NAME IS NULL[]   投稿日:2017/06/20 12:21:59  ID:9TTafpCL.net(2)
>852
思うわけないだろお前ら相手にw

849
NAME IS NULL[sage]   投稿日:2017/06/21 08:12:52  ID:???.net(1523)
PostgresSQLについて質問です
hogeテーブルに日時を2017-06-21 20:08:45のような形で保存しているdatetimeフィールドがあるとして、
「datetimeが現在日時から120分以内の行を抜き出す」場合にはWHERE節に何と書けばいいのでしょうか?
コメント2件

850
NAME IS NULL[sage]   投稿日:2017/06/21 10:51:11  ID:???.net(1523)
>854
where col between now() and now() + '120 minutes'
コメント2件

851
NAME IS NULL[sage]   投稿日:2017/06/21 11:18:08  ID:???.net(1523)
>855
片手落ちじゃないかな

852
NAME IS NULL[sage]   投稿日:2017/06/21 11:41:47  ID:???.net(1523)

853
NAME IS NULL[sage]   投稿日:2017/06/21 12:23:44  ID:???.net(1523)
>857
プラマイ120m

854
NAME IS NULL[sage]   投稿日:2017/06/21 12:36:08  ID:???.net(1523)
すみません、言葉足らずでした
datetime列はそのときの現在時刻を入れていく列です
>855のようにnowを使ってやってみます
ありがとうございました
コメント2件

855
NAME IS NULL[sage]   投稿日:2017/06/21 12:49:24  ID:???.net(1523)
>858
そこは解釈の問題
なので要件を確認した方がいいな
コメント4件

856
NAME IS NULL[sage]   投稿日:2017/06/21 13:46:55  ID:???.net(1523)
そのときの現在時刻を入れていく列ってことらしいから
未来時間は入らないだろうなあ
コメント2件

857
NAME IS NULL[sage]   投稿日:2017/06/21 14:08:08  ID:???.net(1523)
now() - interval '120 minutes'
と、intervalを明示しといた方がいい気がする
コメント2件

858
NAME IS NULL[sage]   投稿日:2017/06/25 14:21:19  ID:???.net(1523)
テーブルとして
Hoge:カラム HogeId,Name
Tag:カラム TagId、Name
TagRelation:カラム Id、HogeId、TagId
のようなものがあっって要はHogeにTagをTagRelationを関連付けているとして、
TagとしてId=1、2、3のものがあったとしてその3つのTag全てへの関連を持つHogeを列挙したいとしたらSQL一発でできますか?
TagRelationでは同じHogeとTagへの関係が重複してあり得るものとします。
distinct,group by,count辺り使えばいけるのかな?
コメント2件

859
NAME IS NULL[sage]   投稿日:2017/06/25 14:35:54  ID:???.net(1523)
こっちのテンプレにあるな

SQL質疑応答スレ 17問目 [無断転載禁止]&#169;2ch.net
SQL質疑応答スレ 17問目

860
NAME IS NULL[sage]   投稿日:2017/06/25 15:13:21  ID:???.net(1523)
おお、あざす。ああHaving句とか知らんかった。
SQLiteでdistinct絡めたものがなんかコンパイルエラーになるけれど大筋は分かったのでいろいろ試してみる。ありー

861
NAME IS NULL[sage]   投稿日:2017/06/25 15:36:24  ID:???.net(1523)
成果物おいときますね
セレクト ItemCommon.Id,ItemCommon.DisplayName
from (セレクトdistinct TagRelation.ItemId as itemId,TagRelation.TagId as tagId from TagRelation
where TagRelation.TagId in (
'eea01c2b-e0f8-418e-a942-d4e1f43e71f9',
'6668707d-ab6e-4e48-837d-b45ae3954360'
))
inner join itemCommon on itemId=ItemCommon.Id
group by ItemCommon.Id having count(*)=2
order by ItemCommon.Id

862
NAME IS NULL[sage]   投稿日:2017/06/25 15:36:55  ID:???.net(1523)
なんかはじかれるのでカタカナに置き換えた

863
NAME IS NULL[sage]   投稿日:2017/06/25 17:05:25  ID:???.net(1523)
SQL文を弾いてしまうの、どうにかならないものかな・・
中継クラウドがやっているようだ

864
NAME IS NULL[sage]   投稿日:2017/06/25 19:54:01  ID:???.net(1523)
SQLインジェクション対策ってやつですか?

865
NAME IS NULL[sage]   投稿日:2017/06/26 12:13:47  ID:???.net(1523)
あまり話題にならないのは、レスでSQL文を書く用事があるのはこの板くらいだからかw

866
NAME IS NULL[sage]   投稿日:2017/06/26 23:49:45  ID:???.net(1523)
作業テーブル
ID、作業番号...
作業詳細テーブル
ID、作業ID、作業開始時間、作業終了時間...
作業明細テーブル(作業詳細テーブル 1-多 作業明細テーブル)
ID、作業詳細ID、作業内容、宿泊費...

うろ覚えですがこんな感じのテーブルがありまして、作業内容にhogehogeもしくはnullnullという言う文字列が入っている作業番号を知りたいまたは入っていない作業番号を知りたいのですが
試行錯誤しながら副問い合わせを使ってもできません。以下の感じになりました

// hogehogeもしくはnullnullが入っている作業番号
SELECT 作業番号
FROM 作業テーブル INNER JOIN 作業詳細テーブル ON 作業テーブル.ID = 作業詳細テーブル.作業ID
WHERE 作業詳細テーブル.ID IN
(SELECT 作業詳細ID
FROM 作業明細テーブル
WHERE 作業内容 LIKE '%hogehoge%' OR 作業内容 LIKE '%nullnull%')

// hogehogeもしくはnullnullが入っていない作業番号
SELECT 作業番号
FROM 作業テーブル INNER JOIN 作業詳細テーブル ON 作業テーブル.ID = 作業詳細テーブル.作業ID
WHERE 作業詳細テーブル.ID IN
(SELECT 作業詳細ID
FROM 作業明細テーブル
WHERE 作業内容 NOT LIKE '%hogehoge%' OR 作業内容 NOT LIKE '%nullnull%')

どうすれば特定の文字列が入っている作業番号を抜き出すことができるでしょうか?教えてください

867
NAME IS NULL[sage]   投稿日:2017/06/27 00:39:00  ID:???.net(1523)
>871
なんかおかしな結合条件になってるけどそれぞれのテーブルはIDで紐づけてるわけじゃないの?

868
NAME IS NULL[sage]   投稿日:2017/06/27 01:01:05  ID:???.net(1523)
hogehogeもしくはnullnullが入っていない作業番号

ORじゃなく、ANDじゃ?と思った

869
NAME IS NULL[sage]   投稿日:2017/06/27 12:25:38  ID:???.net(1523)
>872
2番目以降、名前IDで紐付けしています

>873
やっぱりそうですかね?

870
NAME IS NULL[sage]   投稿日:2017/06/27 23:00:43  ID:???.net(1523)
誰かレスお願いします

871
NAME IS NULL[]   投稿日:2017/06/27 23:10:56  ID:X5GsG9b9.net(2)
では私が
コメント4件

872
NAME IS NULL[sage]   投稿日:2017/06/27 23:20:10  ID:???.net(1523)
いえいえ私が
コメント2件

873
NAME IS NULL[sage]   投稿日:2017/06/27 23:35:37  ID:???.net(1523)
>871
速度考えなきゃ
-- hogehogeもしくはnullnullが入っている作業番号
SELECT 作業テーブル.作業番号 AS 作業番号
FROM 作業テーブル
INNER JOIN 作業詳細テーブル ON 作業テーブル.ID = 作業詳細テーブル.作業ID
INNER JOIN 作業明細テーブル ON 作業明細テーブル.作業詳細ID = 作業詳細テーブル.ID
WHERE 作業詳細テーブル.作業内容 LIKE '%hogehoge%' OR 作業詳細テーブル. 作業内容 LIKE '%nullnull%'
GROUP BY 作業テーブル.作業番号
で行けるんじゃね?
入ってない方は
SELECT 作業番号 FROM 作業テーブル
EXCEPT
SELECT 以下同文
でいいんじゃね?
コメント2件

874
NAME IS NULL[]   投稿日:2017/06/27 23:35:58  ID:LiLTLORO.net(4)
>875
素直にFROM句で3つのテーブルを結合しろよ。

875
NAME IS NULL[]   投稿日:2017/06/27 23:37:14  ID:LiLTLORO.net(4)
>878
性能といいながら、そんなにコストの高いSQLを勧めるなよw
コメント2件

876
NAME IS NULL[sage]   投稿日:2017/06/27 23:49:04  ID:???.net(1523)
「ないものはない!」みたく、曖昧な表現だな

「速度を考えないで良いなら」と言いたいのでは?

877
NAME IS NULL[sage]   投稿日:2017/06/28 00:51:16  ID:???.net(1523)
こんなんでどうだろうか
SELECT distinct 作業番号
FROM 作業テーブル,作業詳細テーブル,作業明細テーブル
WHERE
作業テーブル.ID = 作業詳細テーブル.作業ID AND
作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID AND
(作業明細テーブル.作業内容 LIKE '%hogehoge%' OR
作業明細テーブル.作業内容 LIKE '%nullnull%');

SELECT distinct 作業番号
FROM 作業テーブル,作業詳細テーブル,作業明細テーブル
WHERE
作業テーブル.ID = 作業詳細テーブル.作業ID AND
作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID AND
(作業明細テーブル.作業内容 NOT LIKE '%hogehoge%' AND
作業明細テーブル.作業内容 NOT LIKE '%nullnull%');

878
NAME IS NULL[sage]   投稿日:2017/06/28 07:18:31  ID:???.net(1523)
>880
ほっといてやれよ
僕が考えた最強のSQLなんだから
コメント2件

879
NAME IS NULL[sage]   投稿日:2017/06/28 09:04:03  ID:???.net(1523)
>880
落ち着け
速度考慮してないだろ

880
NAME IS NULL[sage]   投稿日:2017/06/28 12:09:10  ID:???.net(1523)
>速度考えなきゃ
速度も考慮しなくては
速度を考えなくてもいいなら

どっちにも取れるw
コメント6件

881
NAME IS NULL[]   投稿日:2017/06/28 12:29:10  ID:wyt1L1ut.net(2)
これはガチに国語力低いパターン

882
NAME IS NULL[sage]   投稿日:2017/06/28 14:29:29  ID:???.net(1523)
外国人なんだろ
コメント2件

883
NAME IS NULL[]   投稿日:2017/06/28 15:27:24  ID:sraozQ1L.net(2)
文章にSQLを埋め込む高等テクニックだからな。
コメント2件

884
NAME IS NULL[sage]   投稿日:2017/06/28 22:55:46  ID:???.net(1523)
>882
作業内容にhogehogeもしくはnullnullを含むは検索できましたが逆ができません
いろいろ試行錯誤していても取り出せません
上記にも書いてあるんですが、作業詳細テーブルのレコード1つ対し作業明細テーブルのレコードが複数結びついているのでまたややこしくなっているんだと思います

885
NAME IS NULL[sage]   投稿日:2017/06/28 23:08:25  ID:???.net(1523)
>889
その作業番号に紐付く作業明細テーブルの作業内容に
hogehogeもしくはnullnullを含まないものがあれば抽出したいのか、
その作業番号に紐付く作業明細テーブルの作業内容に
hogehogeもしくはnullnullが含まない作業番号を抽出したいのか
どちらだろうか?

後者なら、前者でhogehogeもしくはnullnullを含む作業番号を抽出出来ているのだから、
その作業番号以外の作業番号を求めればいいのでは?

886
NAME IS NULL[sage]   投稿日:2017/06/28 23:09:47  ID:???.net(1523)
「前者」は、質問内容の前者ということです

887
NAME IS NULL[sage]   投稿日:2017/06/29 06:19:07  ID:???.net(1523)
>890
後者です
論理演算的にNOT ORを使えばいいのでしょうか?

SELECT distinct 作業番号
FROM 作業テーブル,作業詳細テーブル,作業明細テーブル
WHERE
作業テーブル.ID = 作業詳細テーブル.作業ID AND
作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID AND
NOT (作業明細テーブル.作業内容 LIKE '%hogehoge%' OR
作業明細テーブル.作業内容 LIKE '%nullnull%')

こんな感じですか?

888
NAME IS NULL[sage]   投稿日:2017/06/29 06:47:56  ID:???.net(1523)
速度考えなきゃ○○でいいんじゃね?

これ読んで速度考えたさいきょうの○○と思う>880とか>883の国語力 w

889
NAME IS NULL[sage]   投稿日:2017/06/29 06:51:50  ID:???.net(1523)
>892
> 後者です

>> 入ってない方は
>> SELECT 作業番号 FROM 作業テーブル
>> EXCEPT
>> SELECT 以下同文
>> でいいんじゃね?
コメント2件

890
NAME IS NULL[sage]   投稿日:2017/06/29 11:40:49  ID:???.net(1523)
>893
>速度考えなきゃ
で改行入ってるから、そこで文章が切れてると判断するかつながってると判断するか
その材料がないだろ、キミの国語力も怪しいw
コメント2件

891
NAME IS NULL[sage]   投稿日:2017/06/29 11:57:28  ID:???.net(1523)
お前らまさか
件のsql見て処理速度分からないの?

じゃなきゃ文頭一行に
異様にこだわる理由はそれかよw

892
NAME IS NULL[]   投稿日:2017/06/29 12:19:13  ID:IG0jLtOQ.net(2)
>895←馬鹿の思考の真髄w
コメント2件

893
NAME IS NULL[sage]   投稿日:2017/06/29 12:26:26  ID:???.net(1523)
>894
できませんでした
質問する場所を変えるので取り下げます
コメント2件

894
NAME IS NULL[sage]   投稿日:2017/06/29 13:38:09  ID:???.net(1523)
外国人なんだろ
コメント2件

895
NAME IS NULL[sage]   投稿日:2017/06/29 18:31:17  ID:???.net(1523)
>じゃなきゃ
じゃも考慮しなくては
じゃを考えなくてもいいなら

どっちにも取れるw
コメント2件

896
NAME IS NULL[sage]   投稿日:2017/06/29 19:39:43  ID:???.net(1523)
国語力をバカにされたのがそんなに悔しかったのかよ

897
NAME IS NULL[]   投稿日:2017/06/29 20:14:01  ID:s5zXJTLS.net(2)
そりゃ悔しいだろうよw自分じゃ頭いいと思ってるんだからなw馬鹿すぎるwwww

898
NAME IS NULL[sage]   投稿日:2017/06/29 20:33:08  ID:???.net(1523)
>900
はしゃいでるなー









イミワカラン

899
NAME IS NULL[sage]   投稿日:2017/06/29 21:06:45  ID:???.net(1523)
IPAの試験は半分国語の問題だからな。こういうのも意外と大事よ。

900
NAME IS NULL[]   投稿日:2017/06/30 00:24:15  ID:qR8XYDhd.net(12)
質問ですが
table点数
名前  年月日  点数 
花道 2017/10/1 20
赤木 2017/10/1 80
三井 2017/10/1 20
花道 2017/10/5 10
赤木 2017/10/5 100
三井 2017/10/5 40
花道 2017/10/10 0


table成績
名前 評価 最終評価年月 
花道 E 2017/9/1
赤木 A 2017/10/5
三井 C 2017/9/1


↑のようなテーブルがあったとして↓のビューを作成したい。
新規評価ビュー
ランキング 名前 テスト回数 平均点 評価


テスト回数は、table点数にある名前の回数で
対象データはtable点数の年月日が table成績の最終評価年月日に設定されている日以降
ランキングはテスト回数から番号を作成
平均点はtable点数の点数の平均

最終評価年月によってテスト回数をだすのがよくわからないのでだれかアドバイスお願いします。
コメント2件

901
NAME IS NULL[]   投稿日:2017/06/30 00:26:38  ID:qR8XYDhd.net(12)
>905
sqlserverでやりたいです。

902
NAME IS NULL[sage]   投稿日:2017/06/30 07:35:02  ID:???.net(1523)
>905
> ランキングはテスト回数から番号を作成
テスト回数のランキングってこと?
ならこんな感じかな
create view View904 as (
select
rank() over (order by count(*) asc) as ランキング,
成績.名前 as 名前,
count(*) as テスト回数,
avg(点数.点数) as 平均点,
成績.評価 as 評価
from 成績
left join 点数 on 成績.名前 = 点数.名前
where 成績.最終評価年月 < 点数.年月日
group by 成績.名前, 成績.評価
)
group by と rank() は同時に使ったことないからもしかしてそこでエラーになるかも
その時はサブクエリにして改めて rank() を適用してちょ

903
NAME IS NULL[sage]   投稿日:2017/06/30 10:38:04  ID:???.net(1523)
>905
まずは、
・ランキング
・テスト回数
・平均点
・評価
を、自分でそれぞれ別のクエリで書いてみて、わからない奴だけ質問してくれ

904
NAME IS NULL[]   投稿日:2017/06/30 12:18:20  ID:TPE85msy.net(2)
>908
わからんなら絡むなって

905
NAME IS NULL[sage]   投稿日:2017/06/30 12:22:22  ID:???.net(1523)
↑のようなテーブルがあったとして↓のビューを作成したい。
新規評価ビュー
ランキング 名前 テスト回数 平均点 評価

↑この下に、どういう結果を期待しているのか、書いてみて
コメント8件

906
NAME IS NULL[sage]   投稿日:2017/06/30 17:40:19  ID:???.net(1523)
ランキングってのは該当点数の平均点の順位で良いのか?
とりあえず書いてみた
with
tmpデータ as (
select 名前,AVG(点数) as 平均点,COUNT(名前) as テスト回数
from(
select * from table点数 t
where t.年月日 >= (select MAX(最終評価年月) from table成績 where 名前=t.名前)
) t2
group by 名前
)
select
(select COUNT(*)+1 from tmpデータ where 平均点>x.平均点) as ランキング,
table成績.名前,テスト回数,平均点,評価
from table成績
left join tmpデータ x on table成績.名前=x.名前

ウィンドウ関数とか使えばもうちょいきれいに書けるのかもしれんが
あれ苦手なんだよなぁ

907
NAME IS NULL[]   投稿日:2017/06/30 18:39:46  ID:qR8XYDhd.net(12)
レスがいっぱい早めに帰ってよかった!
>908
>910
今回こんな感じの結果を求めていました。
ランキング 名前 テスト回数 平均点 評価
1 花道 3 10 E
2 三井 2 30 A
3 赤木 1 80 C

>907
>911
ありがとうございます。さっそく試してみます。
コメント5件

908
NAME IS NULL[]   投稿日:2017/06/30 18:40:50  ID:qR8XYDhd.net(12)
>912
A と Cが入れ替わりだった
コメント4件

909
NAME IS NULL[]   投稿日:2017/06/30 21:25:44  ID:qR8XYDhd.net(12)
>907 >911
ありがとうございました。思ってたよな動きになりました。


追加で質問なのですがsqlserverだとして
>907の書き方
>911の書き方で
↓のようなのを作るのは問題ないですか?

>905
table点数に 身長等のカラムを300追加したtable
新規評価ビューと同じようなビューを30作る。
DBとしてはDB湘北、DB陵南、DB海南等を10作成↑の内容を各DBが持っているとして


DB湘北の
table点数に数秒に1件Insertされて数百万件のデータが作られていく
Insertされるごとに30のビューが更新されていくと思うのですが、これくらいならSQLserverで問題なく動くかな?

Insertは各DBの中のtable点数だけですが
10のDBのtable点数に同時にInsertは影響がでる?のかきになります

910
NAME IS NULL[sage]   投稿日:2017/06/30 21:40:40  ID:???.net(1523)
>Insertされるごとに30のビューが更新されていく
普通のビューは実データもってないから、ビューが更新されるとかありません

あとは何したいかわからんけど、実機で性能評価してください
ちゃんとした設計のDBなら、数秒に1回の追加も数百万のselectも問題ないけど

まあ、俺なら一つのテーブルにカラム300とか、まずほんとに正しいか疑うけどな
コメント2件

911
NAME IS NULL[]   投稿日:2017/06/30 22:27:23  ID:ZXEQZqmX.net(4)
>915
> ちゃんとした設計のDBなら、数秒に1回の追加も数百万のselectも問題ないけど
これは純粋にハードの性能の問題です嘘をつかないでください
コメント6件

912
NAME IS NULL[]   投稿日:2017/06/30 23:06:16  ID:qR8XYDhd.net(12)
やりたいこととしては単純にビューの内容をGridやエクセル等に表示したいです。
30のビューを作るとしても
実機で性能評価する前に>914ぐらいなら余裕でしょなのか、そもそも無茶なのか簡単な感触がほしいなと。

300カラムは名前、時間+5tableぐらいに分割できますが
一つのビューは1tablか2tableの情報なのでtableは分割したほうがいい?と思うのですが
insaret*5がどのくらい時間かかるかわからなかったのでinsaret*1の300カラムで聞いてみました。
やっぱり分割するべきですかね
コメント2件

913
NAME IS NULL[sage]   投稿日:2017/06/30 23:38:24  ID:???.net(1523)
>916
今どきのまともなハードなら
ってのを追加しとくわ

それなりのハードでもDB設計腐ってたら、その程度の処理でも大変なことになるけどな

914
NAME IS NULL[]   投稿日:2017/06/30 23:57:06  ID:ZXEQZqmX.net(4)
>918
「大変なこと」とはなんですか?ぼやかさずに具体的に言えばいいでしょうに
前言撤回します
アナタ嘘はついてないですね
無知なだけのようです
コメント2件

915
NAME IS NULL[sage]   投稿日:2017/07/01 08:03:41  ID:???.net(1523)
>919
煽るしかできないならよそに行け
コメント6件

916
NAME IS NULL[]   投稿日:2017/07/01 12:22:27  ID:q2SoX0Ck.net(2)
>920
自分の間違いを指摘されると「煽られた」ってw
どんだけ自分に都合いいんだよ馬鹿だなw
コメント2件

917
NAME IS NULL[sage]   投稿日:2017/07/01 13:13:26  ID:???.net(1523)
参考までに効きたいんだが、
毎秒100万アクセスがあるようなシステムってどういうものなの?

918
NAME IS NULL[sage]   投稿日:2017/07/01 13:47:10  ID:???.net(1523)
>922
某夢の国関係の予約サイトで予約開始直後とかは数十万TPS行く
コメント2件

919
NAME IS NULL[sage]   投稿日:2017/07/01 18:07:08  ID:???.net(1523)
>922
プライムデー
コメント2件

920
NAME IS NULL[sage]   投稿日:2017/07/01 19:48:24  ID:???.net(1523)
>921
間違いの指摘ってこれ?
> これは純粋にハードの性能の問題です嘘をつかないでください
インデックスとかパーティションも知らんとかバカ過ぎるだろ
コメント2件

921
NAME IS NULL[sage]   投稿日:2017/07/01 20:14:29  ID:???.net(1523)
他人をバカにしていないと自分の存在価値を確認できない人が多いのかな
コメント2件

922
NAME IS NULL[]   投稿日:2017/07/01 20:16:41  ID:6xOw4q9p.net(18)
>926
お前それ好きだよなあw
どんだけバカにされたんだよw
コメント4件

923
NAME IS NULL[sage]   投稿日:2017/07/01 20:39:02  ID:???.net(1523)
>927
いや他人をバカにして草生やしてる人を結構見かけるから
そういう人の心の中をちょっと想像したりして楽しんでるだけだよ

924
NAME IS NULL[]   投稿日:2017/07/01 20:41:38  ID:6xOw4q9p.net(18)
>928
うわぁ…メッチャ悪趣味じゃんお前…

925
NAME IS NULL[sage]   投稿日:2017/07/01 20:44:01  ID:???.net(1523)
>929
まあそうかもね
否定はしないよ

ただそういう人見てるとそんなに自意識過剰にならずにもっと気楽に生きればいいのになぁって思う

926
NAME IS NULL[]   投稿日:2017/07/01 20:48:41  ID:6xOw4q9p.net(18)
>930
え?お前が気張ってるからそんな狂った趣味になんだぜ?
コメント4件

927
NAME IS NULL[sage]   投稿日:2017/07/01 20:53:33  ID:???.net(1523)
>931
お、おう
コメント2件

928
NAME IS NULL[]   投稿日:2017/07/01 21:01:39  ID:6xOw4q9p.net(18)
>932
大体さあ無知ってお前が思ってる程恥ずかしい事じゃないぜ
一つ教わればその分お前が一つ賢くなるんだから
もっとフラットに自分をさらけだせばいいのに
コメント2件

929
NAME IS NULL[sage]   投稿日:2017/07/01 21:04:39  ID:???.net(1523)
>933
いやなぜ俺がフラットにさらけ出してない前提なのかは疑問だが
あなたのいう通りだと思うよ
コメント2件

930
NAME IS NULL[]   投稿日:2017/07/01 21:06:46  ID:6xOw4q9p.net(18)
>934
え?お前自分の無知を指摘されると馬鹿にされたって思う側の人だろw
簡単に分かった気になるなよ
無知でいいんだよ少しずつ理解してけば
コメント2件

931
NAME IS NULL[sage]   投稿日:2017/07/01 21:09:18  ID:???.net(1523)
>935
いや違うけど…
バカにされようがされまいが、自分の価値には何ら影響を与えないので
なぜなら自分で自分のことダメだと思ってないから
コメント2件

932
NAME IS NULL[]   投稿日:2017/07/01 21:10:42  ID:6xOw4q9p.net(18)
>936
それを「気張ってる」って他人は言うんだけど…
コメント2件

933
NAME IS NULL[sage]   投稿日:2017/07/01 21:11:55  ID:???.net(1523)
ちょっと語弊があったかも
正確にはバカにされていると認識することがないといった方がいいのかもしれない
コメント2件

934
NAME IS NULL[]   投稿日:2017/07/01 21:13:24  ID:6xOw4q9p.net(18)
>938
いや…それはそれで精神的に問題あるぞ…
何度も言うけど無知でいいんだよ
もっと素直になれば?w
コメント2件

935
NAME IS NULL[sage]   投稿日:2017/07/01 21:15:38  ID:???.net(1523)
>939
さっきから無知という言葉を連発しているけど、なにかコンプレックスがあるの?
コメント2件

936
NAME IS NULL[sage]   投稿日:2017/07/01 21:19:21  ID:???.net(1523)
>939
無知かどうかって質問に答えるとしたら何も知らない訳じゃないけど知らないことの方がずっと多いと思う
全知全能か?ってきかれたら明確に否定します
コメント2件

937
NAME IS NULL[]   投稿日:2017/07/01 21:22:51  ID:6xOw4q9p.net(18)
>941
そもそも誰もお前の事を全知全能だなんて思ってないからw
何を怖れてるんだお前はw

938
NAME IS NULL[sage]   投稿日:2017/07/01 21:24:48  ID:???.net(1523)
>942
何も恐れていないよ

>939
精神的に問題があると思うならそうなのかな
人に何かを言われてバカにされてると思う=自分でも自分のことをバカにしてる
ってことだと思うけどどうなんだろうね
コメント2件

939
NAME IS NULL[]   投稿日:2017/07/01 21:28:31  ID:6xOw4q9p.net(18)
>943
つまりお前は無知でちっぽけな自分を怖れてるんだろ?
いやこれは疑問形だけど疑問ではない
そうなんだお前は
でもなあ…皆無知でちっぽけなんだぜ?
コメント6件

940
NAME IS NULL[sage]   投稿日:2017/07/01 21:30:23  ID:???.net(1523)
>944
恐れていてほしいという願望ですか?

941
NAME IS NULL[sage]   投稿日:2017/07/01 21:31:26  ID:???.net(1523)
全ての答えは42
コメント2件

942
NAME IS NULL[sage]   投稿日:2017/07/01 21:45:19  ID:???.net(1523)
>926
明確な理由もなしに人を嘘つき呼ばわりしてたらバカにされてもしょうがなくね?
コメント2件

943
NAME IS NULL[sage]   投稿日:2017/07/01 22:02:21  ID:???.net(1523)
>947
ちょっと背景がわからないけど、嘘つき呼ばわりされてるのが自分なら、自分が嘘をついていないのなら特に気にする必要がないと思う
他人が嘘つき呼ばわりされてたとしたら、その真偽はさておき、それはその人の課題であって、第三者がそれに対して何か言うものでもないとは思う
コメント2件

944
NAME IS NULL[sage]   投稿日:2017/07/02 00:22:29  ID:???.net(1523)
人を嘘つき呼ばわりしてもいいと?
まあそう言う考え方もあるかもな
俺はそうは考えないだけだからいちいち絡んで来なくていいよ
コメント2件

945
NAME IS NULL[sage]   投稿日:2017/07/02 00:33:18  ID:???.net(1523)
嘘つき呼ばわりしてる人がいたとしても、それが事実でなければただの独り言ですからね

946
NAME IS NULL[]   投稿日:2017/07/02 00:50:40  ID:6+gWx0jl.net(14)
>949
お前が正しくない事を言っているのならば
お前の意思には関わらずお前は嘘をついている事になる
嘘つきとは厳然たる事実にすぎん

947
NAME IS NULL[sage]   投稿日:2017/07/02 00:55:06  ID:???.net(1523)
論理的(=客観的に検証可能)な正しさと主観的な正しさなのかによって話は変わってきますね
コメント2件

948
NAME IS NULL[sage]   投稿日:2017/07/02 00:58:24  ID:???.net(1523)
掲示板に書くのは独り言と言わない
チラシの裏にでも書いとけ

949
NAME IS NULL[]   投稿日:2017/07/02 00:58:28  ID:6+gWx0jl.net(14)
>952
主観的な正しさなどというものは存在しない
それはお前の願望にすぎん
コメント2件

950
NAME IS NULL[sage]   投稿日:2017/07/02 00:58:29  ID:???.net(1523)
まだマウンティング完了できないのw
なさけなーーーw

951
NAME IS NULL[sage]   投稿日:2017/07/02 01:05:52  ID:???.net(1523)
>954
実は正しさなど存在しないんですけどね
コメント2件

952
NAME IS NULL[sage]   投稿日:2017/07/02 01:07:03  ID:???.net(1523)
>951
で、何を言いたいの?
当たり前のことを言って話をそらすとか低能がよくやる手じゃないと言うなら誰が嘘ついてるのかを根拠と共に書いてよ
コメント2件

953
NAME IS NULL[]   投稿日:2017/07/02 01:09:55  ID:6+gWx0jl.net(14)
>956
お前は根っからの嘘つきだなw

954
NAME IS NULL[sage]   投稿日:2017/07/02 01:11:27  ID:???.net(1523)
>958
あなたがそう思うならあなたにとってはそうなんでしょうね
コメント2件

955
NAME IS NULL[]   投稿日:2017/07/02 01:11:39  ID:6+gWx0jl.net(14)
>957
当たり前のことを言って話をそらすとか低能がよくやる手じゃないと言ってないけど?w
お前は何を見てるんだ?気でも狂ったか?w

956
NAME IS NULL[]   投稿日:2017/07/02 01:12:24  ID:6+gWx0jl.net(14)
>959
嘘つきとは厳然たる事実にすぎんw
コメント2件

957
NAME IS NULL[sage]   投稿日:2017/07/02 01:14:03  ID:???.net(1523)
>961
面白いです
コメント2件

958
NAME IS NULL[]   投稿日:2017/07/02 01:19:24  ID:6+gWx0jl.net(14)
>962
そうかそれなら良かった

ところでお前が>915なら言っておくが
俺はお前の事を嘘つきとは言ってないぞ
いや一度は言ったがw
前言撤回して正確に無知なだけだと認知しているからねw
コメント2件

959
NAME IS NULL[sage]   投稿日:2017/07/02 01:22:04  ID:???.net(1523)
>963
残念ながら私は>915さんではありません…
コメント2件

960
NAME IS NULL[]   投稿日:2017/07/02 01:23:38  ID:6+gWx0jl.net(14)
>964
そうか違ったかwすまんなw

じゃあ誰なんだよ無駄に俺に絡んできてるやつw
コメント2件

961
NAME IS NULL[sage]   投稿日:2017/07/02 01:25:03  ID:???.net(1523)
SQLは本当に初心者でして、MySQL+PHPで自分用のプライベートなファイルアップローダーを作ったことくらいしかないレベルです
でもデータベースは面白いしWeb技術としては必須なので少しずつ勉強しており、このスレも時々のぞいております
コメント2件

962
NAME IS NULL[sage]   投稿日:2017/07/02 01:33:59  ID:???.net(1523)
>965
絡んでしまったのは私なんですけど、あなたが想定してる人ではないようです
ごめんなさいね
コメント2件

963
NAME IS NULL[sage]   投稿日:2017/07/02 01:50:27  ID:???.net(1523)
>960
> 当たり前のことを言って話をそらすとか低能がよくやる手じゃないと言ってないけど?w
日本語の理解も怪しい奴だったのか w
コメント2件

964
NAME IS NULL[sage]   投稿日:2017/07/02 01:51:59  ID:???.net(1523)
幸せですか?
コメント2件

965
NAME IS NULL[sage]   投稿日:2017/07/03 15:27:30  ID:???.net(1523)
>965
> じゃあ誰なんだよ無駄に俺に絡んできてるやつw
心の声:もっと俺に絡め!
コメント3件

966
NAME IS NULL[]   投稿日:2017/07/05 21:11:11  ID:4hstFHU6.net(4)
質問ですが
sqlserverにDB1、DB2、〜DB10があり中にtableAとtableBがありカラムは同じだとします。

tableAにPC1とPC2から同時にinsert処理するとトランザクションが発生しますが
↓のパターンの処理の場合は問題はおこりますか?
問題ないならパターン2でいこうと思いますがパターン1がいいことってありますか?

パターン1
DB1.tableAにPC1からinsert処理、
DB2.tableAにPC2からinsert処理を同時にする

パターン2
DB1.tableAにPC1からinsert処理、
DB1.tableBにPC2からinsert処理を同時にする

967
NAME IS NULL[sage]   投稿日:2017/07/05 21:27:16  ID:???.net(1523)
>971
問題ない

968
NAME IS NULL[]   投稿日:2017/07/05 21:35:38  ID:4hstFHU6.net(4)
ありがとうございます。
パターン2で考えてみます。

969
NAME IS NULL[sage]   投稿日:2017/07/05 23:25:15  ID:???.net(1523)
Left Outer Jonって複数一気に出来ない?
方法がわからないので、
(サブクエリ(サブクエリ(サブクエリ)))でやってるんだけど。

970
NAME IS NULL[]   投稿日:2017/07/05 23:36:50  ID:Em7FNC1e.net(2)
>974
できるよ。構文上は外部結合した結果と結合するんだから、結合条件次第。

971
NAME IS NULL[sage]   投稿日:2017/07/06 03:50:49  ID:???.net(1523)
(+)使えると便利だと思った
コメント2件

972
NAME IS NULL[]   投稿日:2017/07/06 20:39:29  ID:7aA4qt+y.net(2)
>976
単にオラクル構文に慣れているだけでしょ。

973
NAME IS NULL[sage]   投稿日:2017/07/07 13:32:57  ID:???.net(1523)
よろしくお願いします。
前任者が突然退職しました。
SQL初心者ですが業務を引く次ぐことになりました。
今、行き詰まってます。
次のようなテーブルが有ります。
table 出勤表(
社員番号 serial,
日付 date,
出勤時間 timestamp,
退勤時間 timestamp,
遅刻 boolean,
早退 boolean,
欠勤 boolean
)
ここである期間内の、例えば
where 日付 between '2017-05-01' and '2017-05-14'
内における社員それぞれの遅刻、早退、欠勤の【有無】を求めたいのです。
出力例)
社員番号 遅刻 早退 欠勤
10    F F T
11 F F F
12 T T F
のような。
色々試行錯誤していますが、まず、ある期間内に遅刻があったかどうか、というところからもう分かりません。
ヒントだけでもかまいません。
助けてください。
Postgresqlです。

974
NAME IS NULL[sage]   投稿日:2017/07/07 16:57:35  ID:???.net(1523)
Postgresqlってboolean型にMAXとかMINとかとったらどうなる?

たとえば指定期間内の遅刻のMAXかMINとれば行けると思うけど
だめならCASEでTRUEのとき1、それ以外は0にしてSUMなりMAXなり取ればいけるんじゃね
コメント2件

975
NAME IS NULL[sage]   投稿日:2017/07/07 17:37:50  ID:???.net(1523)
>978
SELECT 社員番号,
SUM(CASE WHEN 遅刻 THEN 1 ELSE 0 END) > 0 as 遅刻,
SUM(CASE WHEN 早退 THEN 1 ELSE 0 END) > 0 as 早退,
SUM(CASE WHEN 欠勤 THEN 1 ELSE 0 END) > 0 as 欠勤
FROM 出勤表
WHERE 日付 BETWEEN '2017-05-01' AND '2017-05-14'
GROUP BY 社員番号

976
NAME IS NULL[sage]   投稿日:2017/07/08 01:20:39  ID:???.net(1523)
スレ違いでしたら恐縮です。

アプリケーションサイズが一番小さい
データベースソフトウェアを教えてください。

何か記憶だと、インストール不要でちょっとづかいに使える様な
超ちいさい(アプリのサイズが)、データベースソフトがあった記憶があるのですが・・


宜しくお願いいたします。
コメント2件

977
NAME IS NULL[sage]   投稿日:2017/07/08 01:37:23  ID:???.net(1523)
テキストファイルで、文字列検索すれば?
タダだし、簡単だぞ

978
NAME IS NULL[sage]   投稿日:2017/07/08 05:26:33  ID:???.net(1523)
>981
SQLiteはPHP5以降デフォルトでバンドルされています
コメント4件

979
NAME IS NULL[sage]   投稿日:2017/07/08 06:51:56  ID:???.net(1523)
>983
ありがとうございます。SQLiteで間違いありません。

980
NAME IS NULL[sage]   投稿日:2017/07/08 21:05:47  ID:???.net(1523)
>983
すみません。やっぱりSQLiteではありませんでした。

981
NAME IS NULL[sage]   投稿日:2017/07/08 22:55:54  ID:???.net(1523)
>985
つかえねー
コメント2件

982
NAME IS NULL[sage]   投稿日:2017/07/09 04:11:51  ID:???.net(1523)
>986
何様だてめぇ

983
NAME IS NULL[sage]   投稿日:2017/07/09 09:19:56  ID:???.net(1523)
>987
sqlite御一行様
コメント4件

984
NAME IS NULL[sage]   投稿日:2017/07/09 09:59:14  ID:???.net(1523)
>988
いや御一行様じゃなくて>986てめぇに対して言ってんだよ

985
NAME IS NULL[sage]   投稿日:2017/07/09 11:06:01  ID:???.net(1523)
>989
その返事だよ
その怒りのゴールは設定できてる?
コメント2件

986
NAME IS NULL[sage]   投稿日:2017/07/09 12:30:50  ID:???.net(1523)

987
NAME IS NULL[sage]   投稿日:2017/07/09 12:59:55  ID:???.net(1523)
>991
メンゴメンゴ
不快な日曜になったねW
コメント2件

988
NAME IS NULL[sage]   投稿日:2017/07/09 17:45:24  ID:???.net(1523)
>978-980
素直にbool_or( )でいいと思うが
コメント2件

989
NAME IS NULL[sage]   投稿日:2017/07/09 23:03:37  ID:???.net(1523)
>993
977 です。
bool_or() っていう関数、知りませんでした。
これで全く問題なく上手くできました♪
ありがとうございました。

※自分で書いた977が自分の環境(BathyScaphe)で読めません(泣)。なぜ?
コメント2件

990
NAME IS NULL[]   投稿日:2016/05/12 05:29:07  ID:HmbS4CfD.net(2)
SQL初心者用の質問スレッドです。
コメント2件

991
NAME IS NULL[sage]   投稿日:2016/05/14 12:04:11  ID:???.net(1523)
2get
teradataの識者いる?
コメント2件

992
NAME IS NULL[sage]   投稿日:2016/05/26 15:09:21  ID:???.net(1523)
スレなかったっけ、、、と探したら無いな、、落ちたんかな

993
NAME IS NULL[]   投稿日:2016/06/18 19:48:26  ID:wQWiAJ0q.net(2)
外部の利用者が自由にテーブルを追加できるシステムを sqlite で検討しています。
テーブルが重複しないように利用者番号をテーブル名のプレフィックスにつけようと思います。

もしも、同じようなシーンでの一般的な方法などありましたら教えてください。
よろしくお願いします。
コメント2件

994
NAME IS NULL[sage]   投稿日:2016/06/18 21:48:46  ID:???.net(1523)
>4
利用者ごとに
dbはどう?

995
NAME IS NULL[sage]   投稿日:2016/06/18 22:19:58  ID:???.net(1523)
>外部の利用者が自由にテーブルを追加できるシステム
が一般的な使い方とは思えないのに一般的な方法とか...
コメント1件

996
NAME IS NULL[sage]   投稿日:2016/06/19 04:42:21  ID:???.net(1523)
>dbはどう?
この意味がよくわかりません。すみません。

利用者ごとにというのは、少し誤りでした。
正確にはプラグインとして db を操作するモジュールを追加できる仕組みです。
そのモジュールから db に対して create table もできるようにしたいです。
そのときにテーブルの名前の重複を避けたいので、質問させていただきました。
コメント1件

997
NAME IS NULL[sage]   投稿日:2016/06/19 09:41:12  ID:???.net(1523)
sql というよりはそのモジュールの運用方法の話のようだな
コメント1件

998
NAME IS NULL[sage]   投稿日:2016/06/19 10:24:19  ID:???.net(1523)
無謀な気が
ユーザーごとにDB分けちゃダメなん?

999
NAME IS NULL[sage]   投稿日:2016/06/19 11:22:35  ID:???.net(1523)
1つのファイルのほうがユーザが使いやすいかと思っています。

もしかしたら sql という枠組みで話す質問ではないのかもしれません。
sql は初心者なので、動的テーブル名などを調べたのですが何か違う気がしました。
sql は歴史もあるし、自分の考えている程度のことはすでに枠組みができているのかと思い質問しました。

sql の枠組みですんなり当てはまるものがないとわかっただけで前進です。
ありがとうございました。

1000
NAME IS NULL[sage]   投稿日:2016/06/19 11:31:36  ID:???.net(1523)
DBの世界でデータをストアすると言いますが、
では読み出す場合は何て言うのでしょうか?

1001
NAME IS NULL[sage]   投稿日:2016/06/19 11:35:49  ID:???.net(1523)
>9
1つのファイルにこだわりすぎていたかもしれません。
DB を分ける案を検討しようと思います。
ありがとうございました。

1002
NAME IS NULL[sage]   投稿日:2016/06/19 11:58:16  ID:???.net(1523)
>12
5にも礼を言っとけ。
全く同じこと先に言ってる

1003
NAME IS NULL[sage]   投稿日:2016/06/19 13:52:20  ID:???.net(1523)
>13
そういう意味だったんですね

>5
ありがとうございました。

1004
NAME IS NULL[sage]   投稿日:2016/06/21 16:53:37  ID:???.net(1523)
一旦作ったテーブルを長期間使うのではなく、一日にテーブルのcreateやdropを何十回も繰り返すような使い方は特に問題有りませんか?

1005
NAME IS NULL[sage]   投稿日:2016/06/21 18:07:42  ID:???.net(1523)
要件次第

1006
NAME IS NULL[sage]   投稿日:2016/06/21 18:32:30  ID:???.net(1523)
>15
大丈ー夫

1007
NAME IS NULL[]   投稿日:2016/07/09 17:51:20  ID:uRuLwqJe.net(4)
取得した順番に数値をインクリメントして表示したいのですが、どういった文法をすればいいですか?
シーケンスとかそういうことではなく、

select
user,num
from
user

みたいなsqlで
userA 1
userB 2
userC 3

のようにnumに取得した順番に数値をインクリメントしたいです。

1008
NAME IS NULL[]   投稿日:2016/07/09 17:59:50  ID:uRuLwqJe.net(4)
set @i:=0;
select @i:=@i+1 as rownum,user_id from user;

こういう書き方で自己解決しました。

1009
NAME IS NULL[]   投稿日:2016/07/21 20:04:08  ID:W6OLWaxQ.net(2)
質問するときはRDBの名前くらいは書きましょう。

1010
NAME IS NULL[sage]   投稿日:2016/08/07 07:38:31  ID:???.net(1523)
mysql 5.6.20 です

daily_tblからcode毎の最新入力日付を得るのに
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
order by code;
で出せたんですが、
今度はその日付が指定の日付でないもののみを出そうとして
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
where max(inout_date) != '2016-08-05'
group by code
order by code;
とすると、Invalid use of group function ってエラーで出来ません。コード毎の最新入力日付が指定の日付でないもののみを
出すようにするにはどうすればいいのでしょうか

1011
NAME IS NULL[sage]   投稿日:2016/08/07 10:36:30  ID:???.net(1523)
inputなのかinputなのか気になるが、、、
having by 使うケースかなこれ?

1012
NAME IS NULL[sage]   投稿日:2016/08/07 10:37:21  ID:???.net(1523)
おっとgroup by の文字省いた時にby残しちゃったhaving ね

1013
21[sage]   投稿日:2016/08/07 16:10:17  ID:???.net(1523)
あぁinoutになってるw inputです

1014
21[sage]   投稿日:2016/08/07 16:17:17  ID:???.net(1523)
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
having max(input_date) != '2016-08-05'
order by code;

で出てきました。実際に使う時に全然havingなんて思いつきもしなかったです^^;

1015
NAME IS NULL[sage]   投稿日:2016/08/07 16:18:21  ID:???.net(1523)
>22
ありがとうございます

1016
NAME IS NULL[]   投稿日:2016/08/07 16:59:37  ID:mqpBG9Ui.net(4)
>25
テーブル修飾があったり、なかったりしているところがちょっと気持ち悪い。

1017
25[sage]   投稿日:2016/08/07 18:45:08  ID:???.net(1523)
この場合、codeについては付けないと ambiguous 曖昧と言って怒られてしまうんですが、全部にどちらのテーブルのものなのか
はっきりさせておけってことですか?

1018
NAME IS NULL[sage]   投稿日:2016/08/07 19:19:26  ID:???.net(1523)
>28
はい

1019
25[sage]   投稿日:2016/08/07 20:34:00  ID:???.net(1523)
努力します^^;

1020
NAME IS NULL[]   投稿日:2016/08/07 20:46:40  ID:mqpBG9Ui.net(4)
この例の場合、同じカラムがあるなら、FROM句の最初にあるテーブルのテーブル別名aで修飾するのが一般的。

他人がこのSQLだけを見たとき、この書き方だとどちらのテーブルのカラムか分からない。

1021
NAME IS NULL[sage]   投稿日:2016/08/21 09:41:45  ID:???.net(1523)
mysql5.7を使用しています
ユーザーのゲーム内マネーをwalletテーブルで管理していて
新たにユーザーの最大マネー記録の管理が必要になったので
recordテーブルを新たに作ることにしました

walletテーブル: id, user_id, gold
recordテーブル: id, user_id, max_gold

質問なのですが、walletテーブルのgoldから
recordテーブルのmax_goldを全ユーザー分一括で更新するにはどうしたらいいでしょうか
よろしくお願いします

1022
NAME IS NULL[sage]   投稿日:2016/08/21 14:33:49  ID:???.net(1523)
recordには全idすでにある前提?

UPDATE record
SET max_gold = (SELECT MAX(gold) FROM wallet
WHERE record.user_id = wallet.user_id);

とかは?

1023
32[sage]   投稿日:2016/08/22 01:44:39  ID:???.net(1523)
>33
レスありがとうございます
説明が不足していてすみません
userテーブルとwalletテーブルは1対1になっています
userテーブルとrecordテーブルも1対1です
全user分のwalletとrecordが存在します
walletテーブルのgoldは増減します
recordテーブルのmax_goldは過去最高goldです
あるタイミングで複数walletに一斉にgoldがプラスされます
そのときにwalletのgoldがrecordのmax_goldより大きければmax_goldを更新したいです
自分なりに調べてupdateとjoinを使うのだろうということはわかりましたがSQLを書けずにいます
教えていただけると嬉しいです
よろしくお願いします

1024
NAME IS NULL[]   投稿日:2016/08/22 01:49:54  ID:nVybO4PH.net(6)
>34
まずはひとつずつ考えて。

段階的に考えていかないと。

1025
NAME IS NULL[sage]   投稿日:2016/08/22 04:14:30  ID:???.net(1523)
別にその条件でも>33でいけるだろ

1026
NAME IS NULL[sage]   投稿日:2016/08/22 04:17:24  ID:???.net(1523)
あー元がmaxより小さいケースがあんのか、でもl条件一つ追加するだけだよな

1027
32[sage]   投稿日:2016/08/22 10:24:05  ID:???.net(1523)
自己解決できたみたいです

update record
left join wallet on record.user_id = wallet.user_id
set record.max_gold = if(wallet.gold > record.max_gold, wallet.gold, record.max_gold)
where record.user_id = wallet.user_id;

これでやりたいことはできたと思います
ありがとうございました

1028
NAME IS NULL[sage]   投稿日:2016/08/22 10:41:57  ID:???.net(1523)
ちょっと見ただけですけど
recordテーブルを追加するのではなく、
walletテーブルに max_goldという項目を追加すれば良いのでは?

1029
NAME IS NULL[sage]   投稿日:2016/08/22 10:57:44  ID:???.net(1523)
user_idごとに1件しか無いのにidが別にあることとかいろいろ気になるけど
まあなんか書いてない理由があるんだろう、、、

どうしても最新状態保つなら単にトリガ書くだけのが早そうだが

1030
NAME IS NULL[]   投稿日:2016/08/22 13:08:23  ID:nVybO4PH.net(6)
>38
正直に言ってくそSQLだわ。

他人があとでみたら、こいつ殺すと思われるレベル。

1031
NAME IS NULL[sage]   投稿日:2016/08/22 13:40:23  ID:???.net(1523)
初心者スレなんだからぼろくそに言うのではなく改善案を提示しないと

1032
NAME IS NULL[sage]   投稿日:2016/08/22 13:59:03  ID:???.net(1523)
これは更新が1回でも失敗したらもう最大値が出せなくなるじゃん

1033
NAME IS NULL[sage]   投稿日:2016/08/22 18:58:47  ID:???.net(1523)
>34
walletに時系列データはないのか?
ないと実現出来ないのではないか?

1034
32[sage]   投稿日:2016/08/22 20:10:31  ID:???.net(1523)
だめなSQLのようですね
どこが悪いのかがわからないのでどう改善していいのかもわかりません
具体的に指摘してもらえると助かります
SQL難しいですね

>39
recordにはユーザーの最大ゴールド以外にもいろいろな記録を持たせようと思っています

>44
時系列データはありません

1035
NAME IS NULL[sage]   投稿日:2016/08/22 22:48:38  ID:???.net(1523)
開始の残高ファイルと更新データがあれば累計関数使って累計残高viewを作ってその最大値で更新したほうがいいと思う
mysqlでは下記リンク先参照
http://pct.unifas.net/mysql/3712

1036
NAME IS NULL[]   投稿日:2016/08/22 23:24:46  ID:nVybO4PH.net(6)
>45
疑問なのは、UPDATE文ひとつでやらないと本当にいけないの?

こういう状況がわからない。

1037
NAME IS NULL[sage]   投稿日:2016/08/23 03:22:31  ID:???.net(1523)
>38のSQLでは、実行時のwalletの値が最大値だったときしか更新されないぞ
履歴保持してないのに全ユーザ一括は無理(全ユーザのwallet更新タイミングが同じでない限り)

walletが時系列や履歴を持たずに、現在値しか保持してないなら
walletの更新時にrecordを更新しないとダメ

で、普通のDBMSなら、こういうのはwalletにトリガ張ってやる
walletを更新するストアドプロシジャ作ってそれでチェックするって方法もあるけど

1038
32[sage]   投稿日:2016/08/23 12:32:35  ID:???.net(1523)
>47
どういうサイトなのかを説明すべきでしたすみません
ざっくり言うと競馬のようなサイトをやっています
レース終了後に払い戻しとして的中した全ユーザーのwalletのgoldを
ユーザーが賭けた額×オッズ分プラスします
この払い戻しのタイミングでmax_goldを更新したいと思い>38のようなSQLを考えました
goldが増えるタイミングは払い戻し時のみです

>48
トリガ、ストアドプロシジャを初めて知りました
調べてみようと思います。ありがとうございます

1039
NAME IS NULL[sage]   投稿日:2016/08/23 12:41:04  ID:???.net(1523)
>40 でトリガって書いてるのになw

1040
NAME IS NULL[sage]   投稿日:2016/08/23 12:42:04  ID:???.net(1523)
どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
SQL以前にDB設計じゃねえの

1041
NAME IS NULL[sage]   投稿日:2016/08/23 12:55:29  ID:???.net(1523)
>51
> どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
と思ってるような奴の方が使い物になるとは思えんな

1042
32[sage]   投稿日:2016/08/23 13:06:07  ID:???.net(1523)
データベースの勉強をおろそかにしてORMに頼ってたツケが回って来た感があります
データベースについて基本からしっかり勉強し直したいのですが
おすすめの本やサイトを教えていただけないでしょうか

1043
NAME IS NULL[sage]   投稿日:2016/08/23 14:43:56  ID:???.net(1523)
>53
amazonでデータベースで検索し、設計関連の評判の良いものを5冊買え

1044
NAME IS NULL[sage]   投稿日:2016/08/24 14:41:29  ID:jYRxe2VKj(2)
元データ
列A 列B
 A  1
 A  2
 B  1
 C  3


結果
 1  2  3
A ○ ○
B ○
C      ○

のような結果を得たい場合、どのようなSQLを書けばよいでしょうか?

1045
NAME IS NULL[sage]   投稿日:2016/09/01 16:46:33  ID:???.net(1523)
SQLっていうか、DBそのものに関する質問になってしまうんですが。。。

データベースに同じUserID、同じパスワードで複数ログイン出来るってのは一旦資格を与えられたユーザーに
ついてはその権限の範囲なら信用するってことなんですかね。

1046
NAME IS NULL[sage]   投稿日:2016/09/01 17:48:15  ID:???.net(1523)
1ユーザ1コネクションの制限を設けたとしたら、マルチプロセスやマルチスレッドなクライアントが任意のタイミングでコネクションを生成するのに苦労するよ。

1047
55[sage]   投稿日:2016/09/01 18:40:00  ID:???.net(1523)
そちらの方のプログラミングには疎いんですが、とにかくそういう制限があるとまずいってわけなんですね。^^;
例えば一般ユーザーに開放しているデータベースがあるとして、そこにアクセスするユーザーにいちいちidとパスワード、権限を
与えるのも大変だなとは思ったんですが。

1048
NAME IS NULL[sage]   投稿日:2016/09/01 19:02:23  ID:???.net(1523)
何に関しては疎くないの?

1049
NAME IS NULL[sage]   投稿日:2016/09/01 20:30:50  ID:???.net(1523)
>59
バカ発見

1050
NAME IS NULL[sage]   投稿日:2016/09/01 21:43:12  ID:???.net(1523)
>60
回答してあげなよ ^^

1051
NAME IS NULL[sage]   投稿日:2016/09/01 22:57:57  ID:???.net(1523)
>58
なんかいろいろ勘違いしてる

1052
NAME IS NULL[]   投稿日:2016/09/02 02:24:24  ID:RT8+OUHE.net(2)
>58
RDBMSでもOSでも1ユーザー、1セッションというものの方が珍しい。

1053
NAME IS NULL[sage]   投稿日:2016/09/02 02:39:07  ID:???.net(1523)
まあRDBMSによって「ユーザー」というものの定義は異なるけどな

1054
NAME IS NULL[sage]   投稿日:2016/09/04 21:42:59  ID:???.net(1523)
トランザクションとかの話?

1055
NAME IS NULL[sage]   投稿日:2016/09/04 21:58:50  ID:???.net(1523)
ユーザ用(id,パスワード)のテーブルがあった方がいいと思うけど

1056
NAME IS NULL[sage]   投稿日:2016/09/04 22:33:29  ID:???.net(1523)
>58
>例えば一般ユーザーに開放しているデータベースがあるとして、
>そこにアクセスするユーザーにいちいちidとパスワード、権限を
>与えるのも大変だなとは思ったんですが。

一般ユーザーに直接データベースを操作させることは普通しないと思う。

そうではなく、データベースを利用するシステムが、利用ユーザーに提供する
業務用アカウントの話じゃないのかな?

1057
NAME IS NULL[sage]   投稿日:2016/09/04 22:40:44  ID:???.net(1523)
ユーザ用って書き方がおかしかった
ユーザを管理するテーブル

1058
NAME IS NULL[sage]   投稿日:2016/09/05 16:09:42  ID:???.net(1523)
最初にテーブルを作成したら、新しいテーブルは必要ないシステムを作っています
この場合、テーブル構造をどう保存するのが正しいやり方ですか?
とりあえずcreate文を保存しています

1059
NAME IS NULL[sage]   投稿日:2016/09/05 16:42:31  ID:???.net(1523)
>69
それでいいよ

1060
NAME IS NULL[sage]   投稿日:2016/09/05 16:46:05  ID:???.net(1523)
DBのツールでスキーマ保存すると結局CREATE文だけってのもあるしな

1061
NAME IS NULL[sage]   投稿日:2016/09/05 16:53:22  ID:???.net(1523)
>70
ありがとうございます

1062
NAME IS NULL[sage]   投稿日:2016/09/16 14:02:36  ID:???.net(1523)
例えば名簿のtableがあって、
id name address
という三つのカラムがあります。
idは重複しない番号です。
この時 id で order by して、
idが1000番台の人の最初の100人取り出す。
idが2000番台の人の最初の100人取り出す。
みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
何か良い方法はありますか?
MySQLです。

1063
NAME IS NULL[sage]   投稿日:2016/09/16 15:12:58  ID:???.net(1523)
>73
between

1064
NAME IS NULL[sage]   投稿日:2016/09/16 15:37:16  ID:???.net(1523)
>73
> みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
indexが使われるなら効率は悪くない

1065
NAME IS NULL[sage]   投稿日:2016/09/16 15:46:47  ID:???.net(1523)
>74>75
すみません、初心者なのでもう少しヒント下さい。
よく理解できません。

1066
NAME IS NULL[sage]   投稿日:2016/09/16 15:50:26  ID:???.net(1523)
>76
select * from 名簿 where id >= 1000 order by id limit 100;
とかするんだろうけど、idにindexが付けられてるなら効率は悪くない
これでわからないのならお手上げ

1067
NAME IS NULL[sage]   投稿日:2016/09/16 15:57:39  ID:???.net(1523)
処理が必ず1000番台ごとにするなら
もう一つ項目daiを追加して、indexを張っておき
id 1000〜1999 には 1 をセット
id 2000〜2999 には 2 をセット
id 3000〜3999 には 3 をセット
というのは?
select * from 名簿 where dai=1 order by id limit 100;

1068
NAME IS NULL[sage]   投稿日:2016/09/16 16:32:17  ID:???.net(1523)
>78
それだとindexは使われない

1069
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:12:26  ID:???.net(1523)
>76
select *
from 名簿
where
id between 1 and 100 or
id between 1000 and 1100 or
id between 2000 and 2100

1070
NAME IS NULL[sage]   投稿日:2016/09/16 17:17:10  ID:???.net(1523)
>79
そんなのDBMSとオプティマイザの判断次第
カーディナリが十分高ければ、daiのインデックスは使われる可能性が高いだろ

元質問はMySQL指定か。MySQLのオプティマイザでは絶対使わんっていう話なら知らん

1071
NAME IS NULL[sage]   投稿日:2016/09/16 17:19:10  ID:???.net(1523)
>79
idに抜け番がないとはどこにも書いてないけどな

1072
NAME IS NULL[sage]   投稿日:2016/09/16 17:39:29  ID:???.net(1523)
>81
MySQLのこと知らんなら黙っとけよ

1073
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:42:18  ID:???.net(1523)
>83
まいしーくぇる

1074
NAME IS NULL[sage]   投稿日:2016/09/16 18:05:34  ID:???.net(1523)
mysqlはクソだからしかたがない。

1075
NAME IS NULL[sa ge]   投稿日:2016/09/16 18:10:25  ID:???.net(1523)
>85
まいしーける

1076
NAME IS NULL[sage]   投稿日:2016/09/16 18:25:35  ID:???.net(1523)
そういや、mysqlではsub queryが劇遅だってのは直ったの?

1077
NAME IS NULL[sage]   投稿日:2016/09/16 21:39:39  ID:???.net(1523)
>81
daiのカーディナリティも十分に大きければそのインデックスも使われるだろうけど、
常にそれよりカーディナリティが大きいidのインデックスを使った方がいいに決まってる。
それにそもそもidでソートするわけだし。

1078
NAME IS NULL[sage]   投稿日:2016/09/17 02:16:52  ID:???.net(1523)
ありがとうございました
indexを試してみます

1079
NAME IS NULL[sage]   投稿日:2016/09/22 11:38:01  ID:???.net(1523)
SELECT * FROM table
WHERE ...
 AND ...
 AND ...
 AND ...
のようにAND条件をズラズラ並べる場合、
その条件を並べる順番で処理速度は変わりますか?

1080
NAME IS NULL[sage]   投稿日:2016/09/22 12:44:02  ID:???.net(1523)
長文失礼します。
mysqlで
article_infoテーブルに title(記事タイトル),url(記事のurl)を持っています。
blog_infoテーブルには blog_title(ブログのタイトル),blog_url(ブログのtopのurl)を持っています。

やりたいこと:
article_infoで取得した記事のブログのタイトルを一緒に取得したい。
article_info.url は、,blog_urlのレコードのどれかを含んでいます。
例:
blog_title:サンプルブログ
blog_url:http://sample.com/
article_info.url:http://sample.com/article/001


   
のようになっているので、もし取得したurlがblog_urlに含んでいた場合、対応するblog_titleを共に表示したいと考えています。

1081
90[sage]   投稿日:2016/09/22 13:24:14  ID:???.net(1523)
ちなみに
SUBSTRING(url,1,LOCATE('/',url,8))  でblog_urlのどれかとマッチするurlが作れることがわかりました。

1082
NAME IS NULL[sage]   投稿日:2016/09/22 13:32:19  ID:???.net(1523)
>90
普通は検索方法はオプティマイザが判断するから関係ない

定義順に条件書かれてないと複合インデックスが使用できないDBMSがあるとかいう噂は昔聞いたことある
その場合は複合インデックスの定義順に並べるほうが早い可能性が高い

オプティマイザが貧弱で検索順を入れ替えられないDBMSも聞いたことがある
その場合はカーディナルの高い順に検索条件並べろと教えられたことはある
単一テーブルの単純な検索なら、最悪でもそのテーブルのフルスキャン1回ですむから
まあどうでもいいと思うが

1083
90[sage]   投稿日:2016/09/22 13:33:17  ID:???.net(1523)
すみません。下記のかんたんなsqlで取得できました。お騒がせしました。
select
a.title,
a.url,
b.blog_title
from
article_info a,blog_info b

1084
NAME IS NULL[sage]   投稿日:2016/09/22 20:16:59  ID:???.net(1523)
>93
詳しい説明ありがとうございました。
MySQLです。
念のために順番を考慮してAND条件を書いてみます。

1085
NAME IS NULL[sage]   投稿日:2016/09/22 23:39:21  ID:???.net(1523)
>94
fromでカンマで繋げるのは
INNER JOINの省略形な

1086
NAME IS NULL[sage]   投稿日:2016/09/22 23:45:57  ID:???.net(1523)
cross joinだろ

1087
NAME IS NULL[sage]   投稿日:2016/09/22 23:53:56  ID:???.net(1523)
ふつう直積(CROSS JOIN)だと思うんだが、>94読んであれ?と思った。
MySQLってそうなのか?

1088
NAME IS NULL[sage]   投稿日:2016/09/23 00:03:00  ID:???.net(1523)
whereでなんかしてなければ直積だな

1089
93[sage]   投稿日:2016/09/23 02:59:28  ID:???.net(1523)
すいません、できたと思ってたけどできてませんでした。
しょうがないのでarticle_infoとblog_infoにblog_idカラムを追加して
Inner join で持ってきました。

1090
NAME IS NULL[]   投稿日:2016/09/24 09:51:02  ID:UI+2ILvZ.net(4)
教えて下さい。
インサートしたカラムに不要な文字[:]がついてしまったのですが、
replaceで毎回取り除いてるとクエリが遅くなるので、すべて更新したいのですが、
update文で出来ますか?

1091
100[]   投稿日:2016/09/24 09:57:30  ID:UI+2ILvZ.net(4)
できました。忘れてください。

1092
NAME IS NULL[sage]   投稿日:2016/10/05 22:12:12  ID:???.net(1523)
mysqlで質問です。
ng_wordテーブルがあります。
テーブルには、wordカラムにキーワードが登録されています。

main_textテーブルのtextカラムの中には
テキストの文章が入っています。

もしmain_textの中にng_wordのwordが含まれていたら、取得したくないのですが、
ロジックを挟まず、sqlだけで取得できますか?

1093
NAME IS NULL[sage]   投稿日:2016/10/05 22:26:56  ID:???.net(1523)
WHERE main_text NOT LIKE '%word%' じゃだめだったか?

1094
102[sage]   投稿日:2016/10/05 22:40:45  ID:???.net(1523)
>104
ワードが1つならそれでも良いかもしれませんが、
複数あるので…

1095
NAME IS NULL[sage]   投稿日:2016/10/06 00:04:56  ID:???.net(1523)
このスレ、SQL文書こうとするとエラーになる
どうしたもんかな・・・

1096
NAME IS NULL[sage]   投稿日:2016/10/06 00:19:48  ID:???.net(1523)
Sorry, you have been blocked
You are unable to access 2ch.net

There are several actions that could trigger this block including submitting
a certain word or phrase, a SQL command or malformed data.

SQL文を投稿しようとすると、ハッキング行為とみなされるみたい

1097
NAME IS NULL[sage]   投稿日:2016/10/06 00:22:02  ID:???.net(1523)
>103
http://codepad.org/7UvXuxkK

こちらに書いてみた

1098
NAME IS NULL[sage]   投稿日:2016/10/06 18:36:58  ID:???.net(1523)
不便になったもんだな

1099
NAME IS NULL[]   投稿日:2016/10/16 17:07:47  ID:9/d7j9zT.net(2)
>107
まあSQLインジェクション対策なんだろうけどな。

1100
NAME IS NULL[]   投稿日:2016/10/16 17:11:39  ID:53yW0F3M.net(2)
>108
前の書き込みをよく見ていないけど、テーブルの結合条件もなければ、カラムのテーブル名修飾もなくてわからない。

テーブル間の関係を説明してくれ。

そもそも初めに書いたようにSQLの書き方そのものが悪い。

1101
NAME IS NULL[sage]   投稿日:2016/10/16 19:59:14  ID:???.net(1523)
>103 に書いてあるだろうに、何が分からないのか分からない

1102
NAME IS NULL[]   投稿日:2016/10/16 23:41:51  ID:yy6enVq7.net(2)
兄弟関係の抽出 と LIMIT、OFFSETに代わるもの (マルチ)

OS: Windows 10 Pro
Access Version: 2016 (2010も使用)
VBA:Excel,Powerpointのみ
VBAでの回答:否
検索キーワード:access SQL 件数 指定


http://www.accessclub.jp/bbs2/0051/beginter16860.html
「No16860.SQLで件数を指定する方法」

SELECT [電話番号] FROM [T_児童マスタ] GROUP BY [電話番号] HAVING Count(*)>1

上記2つ等を元に、次のテーブルに適応させようとしていますが、
スマートな文、クエリ(または他の手法)が思いつきません。
どうかアドバイスをお願いいたします。


T_児童マスタ

学級 氏名 電話番号
11  A  1111-11-1111
21  B 2222-22-2222
31  C 1111-11-1111
41  D 2222-22-2222
51  E 1111-11-1111
61  F 3333-33-3333



望む出力結果

学級 氏名 電話番号    兄弟学級1 兄弟氏名1 兄弟学級2 兄弟氏名2 兄弟学級3 兄弟氏名3
11  A  1111-11-1111  31     C     51     E     
21  B 2222-22-2222  41     E
31  C 1111-11-1111  11     A     51     E
41  D 2222-22-2222  21     B
51  E 1111-11-1111  11     A     31     C
61  F 3333-33-3333

1103
NAME IS NULL[]   投稿日:2016/10/17 01:58:23  ID:ee1NFGBS.net(2)
>103
直積で結合して、textとwordを引数にとる文字列検索関数があれば、それをWHERE句の絞り込み条件にすればできるな。

1104
NAME IS NULL[sage]   投稿日:2016/10/17 07:12:12  ID:???.net(1523)
>113
兄弟の数は可変なの?
2固定なら普通にjoinすればいい

1105
NAME IS NULL[sage]   投稿日:2016/10/17 07:13:39  ID:???.net(1523)
>115
よくみたら2じゃなくて3か

1106
NAME IS NULL[sage]   投稿日:2016/10/17 07:25:17  ID:???.net(1523)
堂々とマルチと宣言すれば文句言われない!キリッ

1107
NAME IS NULL[]   投稿日:2016/10/17 07:35:53  ID:w90R1vLK.net(2)
>113
こんな感じでいいと思う
SELECT
MM.学級 
,MM.氏名 
,MM.電話番号
,S1.学級 AS 兄弟学級1
,S1.名前 AS 兄弟氏名1
,S2.学級 AS 兄弟学級2
,S2.名前 AS 兄弟氏名2
,S3.学級 AS 兄弟学級3,
S3.名前 AS 兄弟氏名3
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
on S1.電話番号 = MM.電話番号
and S1.学級 <> MM.学級
LEFT JOIN T_児童マスタ AS S2
on S2.電話番号 = MM.電話番号
and S2.学級 <> MM.学級
and S2.学級 <> S1.学級
LEFT JOIN T_児童マスタ AS S3
on S3.電話番号 = MM.電話番号
and S3.学級 <> MM.学級
and S3.学級 <> S1.学級
and S3.学級 <> S2.学級
WHERE nz(S1.学級,999) <= nz(S2.学級,999)
and nz(S2.学級,999) <= nz(S3.学級,999)

1108
NAME IS NULL[sage]   投稿日:2016/10/17 13:02:38  ID:???.net(1523)
>106
全角

1109
NAME IS NULL[]   投稿日:2016/10/17 18:24:29  ID:3tZ2amHg.net(6)
>118
ありがとうございます。
これから試してみます。

1110
NAME IS NULL[]   投稿日:2016/10/17 19:50:25  ID:3tZ2amHg.net(6)
>118
少し拡張してみたところ「演算子がありません」とのエラーが
出てしまいます。かなり初歩的な質問になってしまいますが、
問題点をお教えください。宜しくお願いします。


SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号  ←ここ
AND S1.学年 <> MM.学年     ←ここ
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;

1111
NAME IS NULL[]   投稿日:2016/10/17 20:30:12  ID:3tZ2amHg.net(6)
>113 >118 >121
こんな感じにしてみましたが、
今度は「JOIN式はサポートされていません。」
と出てしまいます。

SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM
(
(
T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号
AND S1.学年 <> MM.学年
)
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
)
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;

1112
NAME IS NULL[sage]   投稿日:2016/10/18 00:34:12  ID:???.net(1523)
>122
accessでは一つのクエリではできないみたい
サブクエリ作って3段重ねで繋げてみて

1113
NAME IS NULL[sage]   投稿日:2016/10/18 03:32:30  ID:???.net(1523)
重複行を見付けたら一行のみ残して他を削除したいのですが、
列名などを指定せずに、
DeleteDuplicateRow テーブル名
みたいなコマンドは無いのでしょうか?
キーは有りません。

1114
NAME IS NULL[sage]   投稿日:2016/10/18 11:21:45  ID:???.net(1523)
その残す1行の指定はどうやって決まる?
基本的にSELECTできるものは消せる

1115
NAME IS NULL[sage]   投稿日:2016/10/18 11:44:05  ID:???.net(1523)
>125
重複しているので、どれを消しても良いと思うのですが。

1116
NAME IS NULL[sage]   投稿日:2016/10/18 11:49:15  ID:???.net(1523)
重複って言うのは、特定のフィールドだけじゃなく
(プライマリーキー以外)全てのフィールドが同じ値になるレコード
って意味で良いのかな?

1117
NAME IS NULL[sage]   投稿日:2016/10/18 11:52:11  ID:???.net(1523)
>127
そうです。
プライマリキーも設定していません。

1118
NAME IS NULL[sage]   投稿日:2016/10/18 12:29:42  ID:???.net(1523)
>128
a
a
a
これを一行残して消すとか無理だろ

1119
NAME IS NULL[sage]   投稿日:2016/10/18 12:34:08  ID:???.net(1523)
distinctで作り直す

1120
NAME IS NULL[sage]   投稿日:2016/10/18 12:36:25  ID:???.net(1523)
>129
a

1121
NAME IS NULL[sage]   投稿日:2016/10/18 12:36:59  ID:???.net(1523)
>129
sqlserver ならrownumber関数使えばできる

1122
NAME IS NULL[sage]   投稿日:2016/10/18 12:39:09  ID:???.net(1523)
>132
とりあえずMySQLです。SQL SERVERでもやりたいです。

1123
NAME IS NULL[sage]   投稿日:2016/10/18 14:01:40  ID:???.net(1523)
>133
やはり他の同じ値になるレコードと区別するために
一意のカラムをつけないと削除は無理だと思います
あるいは、>130さんのやり方でテーブル全体を作り直すのが簡単

1124
NAME IS NULL[sage]   投稿日:2016/10/18 15:17:32  ID:???.net(1523)
一意になるフィールドがあれば(例えばプライマリキーがあれば)、
プライマリキー以外のフィールドでグループ化し、
その上で、一番小さなプライマリキー値のリストを取得、
そのキーリスト以外の全レコードを削除、って感じでできます。

1125
NAME IS NULL[sage]   投稿日:2016/10/18 17:24:15  ID:???.net(1523)
RDBMSで全く同じレコードは扱うの大変だし意味ないので今後のためにキー追加するか
重複したものは登録できないようにしたほうが良さげ

1126
NAME IS NULL[]   投稿日:2016/10/19 01:24:02  ID:wlxzgloU.net(2)
皆さん、いろいろアドバイスありがとうございました。
134さんの方式を試してみます。
重複する行を除去するような操作は普通はやらないのですか?

1127
NAME IS NULL[sage]   投稿日:2016/10/19 06:20:22  ID:???.net(1523)
だからその重複させるような事態そのものを発生させないようにしてるんだってば

1128
NAME IS NULL[sage]   投稿日:2016/10/19 07:09:29  ID:???.net(1523)
>137
そのためのプライマリキーです

1129
NAME IS NULL[sage]   投稿日:2016/10/19 07:23:29  ID:???.net(1523)
重複データ消すのに、rownumber 関数が使えればorder byが使えるので、金額が大きいのとか最新のを残すとかできて便利なんだよな
http:/sotoattanito.hatenablog.com/entry/2015/10/20/230208

1130
NAME IS NULL[sage]   投稿日:2016/10/19 18:19:03  ID:???.net(1523)
>122 >123

かなり長文になりましたが、うまくいきました。
ありがとうございました。

1131
NAME IS NULL[sage]   投稿日:2016/10/20 05:26:44  ID:???.net(1523)
>141
質問だけなら長文にならないだろ
後付けの条件あるからだろ

1132
NAME IS NULL[sage]   投稿日:2016/10/25 01:39:06  ID:???.net(1523)
以前見たDBのER図でずっと気になってるのがあるんだが
複合主キーでテーブル繋げていくやり方って普通なんかな

例えば

「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー →
繋がる「生徒」テーブルで「生徒番号」が追加 →
「塾」テーブルでは「塾番号」が追加 →
「教室」テーブルでは「教室番号」が追加

DB連携の案件(基幹系のDBに、WebとDBが一緒になった鯖からでリンクドサーバで合体)で、その教室テーブルの先に
「塾生がどこの塾で試験申し込んだか」を突っ込むテーブルこさえてどうこうするって奴だったんだが

みたいなのとでもいうか、SQLで書くと

select *
from school inner join
(select *
  from person inner join student on
  person.name = student.name and person.tel = student.tel and
  person.gender = student.gender and person.age = student.age) as selected_student on
  selected_student.name = school.name and selected_student.tel = school.tel ... ;ごめんもう無理

みたいな奴
細部があってるかどうかは覚えてないが、だいたいそういうSQLでないと仕様がない
ER図だったから泣きながらやった

書籍を見るととりあえずID振って縛りたいのにユニーク制約らしいんだが
実際だと複合主キー使っていくんだろうか?
正直DBの設計よくわかってない下請けのアホなんで、NE〇の方が正しいのかなあ、などと疑問が

1133
142[]   投稿日:2016/10/25 01:43:49  ID:gb+5Pezb.net(2)
正確にはプログラマーですらない事務員 orz なんか釈然としないんだが、そういうものなのかなあ、と

1134
NAME IS NULL[sage]   投稿日:2016/10/25 10:09:16  ID:???.net(1523)
>143
>「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー
そもそもこれが普通じゃない

> 正直DBの設計よくわかってない
本買って読め

1135
NAME IS NULL[sage]   投稿日:2016/10/25 17:32:39  ID:???.net(1523)
個人で主キーに年齢含むのは普通ないとは思うが
複合キーそのものは別に珍しい物でもない

まあ、ミドル層の都合で全部にID振ろうとか言う流れも無いわけではないけどな

1136
NAME IS NULL[sage]   投稿日:2016/10/25 19:09:21  ID:???.net(1523)
年齢は毎年変わるだろう
キーにしたいなら、生年月日の方

1137
NAME IS NULL[sage]   投稿日:2016/10/25 20:35:20  ID:???.net(1523)
実は死没者名簿だったとか

1138
NAME IS NULL[sage]   投稿日:2016/10/25 21:14:22  ID:???.net(1523)
死没者の集まる塾の教室か

1139
NAME IS NULL[sage]   投稿日:2016/10/26 03:35:36  ID:???.net(1523)
>147
17からインクリメントしない声優なら知っている

1140
NAME IS NULL[sage]   投稿日:2016/10/26 08:42:54  ID:???.net(1523)
現在年齢とは言ってない気がする。

1141
NAME IS NULL[sage]   投稿日:2016/10/26 10:55:39  ID:???.net(1523)
人によって異なる解釈を受けるような定義名は避けた方がいい

1142
NAME IS NULL[]   投稿日:2016/10/26 23:41:52  ID:iZaFjONH.net(2)
qiitaって無能のくせにタイトルで煽って
一読すれば書き手が思い込みの激しい初心者だってわかるんだけど
多数からコメントで間違い指摘されるとクソリプがwwwwwwwと煽ったり
せやから違う場合もあるって最後に書いてるやろ日本語読めんのかバカチョンwww
みたいな臭い奴が結構混じってるけどアレなんのためにやってんの?
誤解を招くタイトルでgoogle上位になるとqiitaから金もらえるの?

1143
NAME IS NULL[]   投稿日:2016/10/27 00:01:04  ID:zKThEwol.net(2)
てすてす

1144
NAME IS NULL[]   投稿日:2016/10/28 12:59:25  ID:F5E1O/a0.net(6)
お邪魔いたします。
ManegementStudioでストアドプロシージャをかけるようになりたいのですが、
家庭教師をしてくださる方いらっしゃいませんでしょうか?
お礼はご相談にて。
捨てアドをさらしますので、ボランティア精神にあふれる方お待ちしております。

rirarira_01@yahoo.co.jp

1145
NAME IS NULL[]   投稿日:2016/10/28 13:40:24  ID:7+o0ZZYT.net(4)
>155
お礼をするというのにボランティアとはどういうことなのか?

1146
NAME IS NULL[]   投稿日:2016/10/28 13:43:36  ID:7+o0ZZYT.net(4)
>155
Transact-SQLの本ならあるだろ。

昔からそんなに変わってない。

Management Studioがどうこうというはどういう意味?

1147
154[]   投稿日:2016/10/28 14:13:08  ID:F5E1O/a0.net(6)
>156
すみません、言葉足らずでした。
お礼はするんですが、なかなかお忙しい皆様が多いかと思いますので、
不勉強な私に時間を割いてくださるボランティア精神にあふれる方を
募集しておりました。

>157
ありがとうございます。
早速購入してみます。

一次面接を合格した企業様がManegementStudioを使用しており
(SQLserber2014)ManegementStudioを使用して、
ストアドプロシージャをかけるようになりたいので、
ManegementStudioの操作性、ストアドプロシージャの知識、
両方が必要となる感じでございます。

現在ManegementStudio勉強環境にインストールして少しずつ勉強中ですが、
二次面接まで時間がないもので、どなたかに家庭教師していただけないかと思い、
失礼ながら書き込ませていただきました。

二次面接は来週早々なので、本が届くのが先か面接が先かという風になってし舞うかと思いまし手…。

どなたかお引き受けいただけませんでしょうか?

1148
NAME IS NULL[sage]   投稿日:2016/10/28 14:29:29  ID:???.net(1523)
綴りの間違いは恥ずかしいから直して
企業様wもそういうのチェックするよ

1149
154[]   投稿日:2016/10/28 14:42:22  ID:F5E1O/a0.net(6)
>159
失礼いたしました。
注意いたします。

1150
NAME IS NULL[sage]   投稿日:2016/10/28 20:18:08  ID:???.net(1523)
>158
論理構成に難があるようだけど
二次は慎重にね。

1151
NAME IS NULL[]   投稿日:2016/10/31 06:20:51  ID:tmLBVYkg.net(2)
SQLserber?serberって何?

1152
NAME IS NULL[sage]   投稿日:2016/10/31 07:34:39  ID:???.net(1523)
>162
こんな簡単な間違いもくみ取れないバカは黙ってろw

1153
NAME IS NULL[sage]   投稿日:2016/10/31 13:41:48  ID:???.net(1523)
その環境での開発経験が必須スキルって面接なら不合格になるべき状況だし、
そうじゃないなら環境作ることができて、足し算するだけのストアドつくれりゃあとはどうとでもなると思うよ。

1154
154[]   投稿日:2016/11/04 10:04:18  ID:hFXlISxO.net(2)
>161
ありがとうございます。
ありのままのスキルをお話ししてきました。

>164
ありがとうございます。
ストアドはできれば尚可の条件なので必須ではないのですが、
出来てくれると嬉しいな、ということでしたので勉強しておりますが、
環境作るところまでしか進んでおりません。

本日結果が出るのでお世話になったお礼に結果はご報告させていただきます。

1155
NAME IS NULL[sage]   投稿日:2016/11/07 18:39:43  ID:???.net(1523)
サブクエリを使う場合、サブクエリも範囲を絞ることで結果扱うデータ量が減って計算時間が短くなりますが、コードの可読性が悪くなります。
なにか良いアイデアはありませんか?

1156
NAME IS NULL[sage]   投稿日:2016/11/07 19:12:51  ID:???.net(1523)
サブクエリを使わない

1157
NAME IS NULL[sage]   投稿日:2016/11/07 22:54:57  ID:???.net(1523)
>167
アホは書き込まないでくれる?

1158
NAME IS NULL[]   投稿日:2016/11/07 22:59:55  ID:GjWHsT4m.net(2)
サブクエリエオ使ったぐらいで「コードの可読性が悪くなります。」なんてウスラバカはそしたらここに書き込む低能

1159
NAME IS NULL[sage]   投稿日:2016/11/07 23:29:01  ID:???.net(1523)
いっそプロシージャーにして見えなくしてしまったら?

1160
NAME IS NULL[sage]   投稿日:2016/11/08 06:31:47  ID:???.net(1523)
関数みたいなことは出来ないの?

1161
NAME IS NULL[sage]   投稿日:2016/11/08 12:30:50  ID:???.net(1523)
サブクリエリオ

1162
NAME IS NULL[]   投稿日:2016/12/14 04:41:53  ID:Z9OjftC8.net(2)
よろしければ教えていただければと思います
変数名に使われるstrsplって何の略でしょうか?

どうにも気になってしまって

1163
NAME IS NULL[sage]   投稿日:2016/12/14 08:17:11  ID:???.net(1523)
string split かねぇ
ggrと strsql を案内されるな

1164
NAME IS NULL[sage]   投稿日:2016/12/14 16:13:54  ID:???.net(1523)
TBS

1165
NAME IS NULL[sage]   投稿日:2016/12/15 17:35:03  ID:???.net(1523)
ちょっと教えて欲しいんですけど。
select * で出てくるものについて、 レコードは並び順は不定ってのは知ってるんですが、カラムの順ってのはどうなってるんですか?
create tableで定義した順?
mysqlで自分で作ったテーブルで見るとなんか定義した順みたいだけど。。。

1166
NAME IS NULL[sage]   投稿日:2016/12/15 17:44:44  ID:???.net(1523)
まあこれは定義した順
でもまあそういうのが気になる状況では * あまり使わないかなあ

1167
NAME IS NULL[sage]   投稿日:2016/12/15 19:01:53  ID:???.net(1523)
>177
ありがとです。自分で書いているのは * の時でも全部カラム名を書くようにはしているんですが。

1168
NAME IS NULL[sage]   投稿日:2016/12/16 04:41:17  ID:???.net(1523)
select * で列リストが定義順でない実装は見たことがないけど
それってちゃんとSQL仕様として決まってるのか

1169
NAME IS NULL[sage]   投稿日:2016/12/16 08:01:01  ID:???.net(1523)
>179
知らんけど決まってないと * 表記自体使えなくね?
insert もカラム指定なくても使えるし。
information_schema 見れば分かるのかな。

1170
NAME IS NULL[sage]   投稿日:2016/12/17 02:25:18  ID:???.net(1523)
列リスト指定しないinsertは*とは書かないからなぁ
information_schemaで列の定義順がみれたしても、*の出力が定義順だという保証にはならないだろ

集合論として行の順番に意味がないなら、列の順番にも意味はないような気がするけど
列の順番はデータじゃなくて定義の一部だって言われたら意味があるような気もするが

1171
NAME IS NULL[sage]   投稿日:2016/12/17 21:14:23  ID:???.net(1523)
>181
select * の順番は何かしら定義されていると思うよ。そうでないと何で select * と書くことが認められているのか分からない。

insert で列リストを省略した時も values に最初に書いた値がどの列に入るか分からなかったら、何で省略できるのさって話になる。

あと列リストは組とかタプルとかいうやつで集合じゃないでしょ。こっちは順序あるし同じ値が勝手に1つにまとめられたらチョー困る。

1172
NAME IS NULL[sage]   投稿日:2016/12/24 02:14:16  ID:???.net(1523)
table1
code  comment
-----  -------------
A001  コメント1です
A002  コメント2です
A005  コメント5です


table2
name  code1  code2  code3
-----  ------  ------  ------
名前8  A003  A002  A007
名前3  A004  A003  A001
名前2  A008  A001  A005

があり、例えば特定のキーワード

keyword = '1です'

に comment が部分一致するような code を含む table2 の行を取り出したいのです。
この例では、
名前3
名前2
の行です。

事前にtable1でキーワードに一致するものを見付けてそれを含むtable2の列を探せば良いと思うのですが、
SQL初心者なのでとっかかりが分かりません。
どういう命令でやるべきなのかヒントを教えて下さい。

1173
NAME IS NULL[sage]   投稿日:2016/12/24 04:29:21  ID:???.net(1523)
ヒントをってことなんだけど、table2からA001のコードを持つ行を取得することはできるんだろうか

1174
NAME IS NULL[sage]   投稿日:2016/12/24 07:36:26  ID:???.net(1523)
Like と In でできるだろうけど、遅そう。

1175
NAME IS NULL[sage]   投稿日:2016/12/24 09:08:19  ID:???.net(1523)
>185
そのSQLを書いて頂けませんでしょうか?

1176
NAME IS NULL[sage]   投稿日:2016/12/24 09:22:17  ID:???.net(1523)
ヒントじゃねーじゃん

1177
NAME IS NULL[sage]   投稿日:2016/12/24 10:30:13  ID:???.net(1523)
わらた

1178
NAME IS NULL[sage]   投稿日:2016/12/24 11:03:45  ID:???.net(1523)
select t21.name
from table1 as t1
inner join table2 as t21 on t1.code = t21.code1
where t1.comment like '%1です%'
union
select t22.name
from table1 as t1
inner join table2 as t22 on t1.code = t22.code2
where t1.comment like '%1です%'
union
select
t23.name
from table1 as t1
inner join table2 as t23 on t1.code = t23.code3
where t1.comment like '%1です%'


多分↑で通るけど、もっといい模範解答求む

1179
NAME IS NULL[sage]   投稿日:2016/12/24 12:12:04  ID:???.net(1523)
ヒント like in exists

1180
NAME IS NULL[sage]   投稿日:2016/12/24 13:00:19  ID:???.net(1523)
>183
ヒント where

1181
NAME IS NULL[sage]   投稿日:2016/12/24 13:13:57  ID:???.net(1523)
select name from table2 t2,
(select code from table1 where comment like '%1です%') t1
where
t2.code1 = t1.code or t2.code2 = t1.code or t2.code3 = t1.code;

1182
NAME IS NULL[sage]   投稿日:2016/12/24 13:43:58  ID:???.net(1523)
>192
さんの方法で出来ました。
>189
さんの方法も試したのですが、うまく行きませんでした。
私のやり方が悪いのかもしれません。
皆さんありがとうございました。助かりました。

1183
NAME IS NULL[sage]   投稿日:2016/12/24 14:45:42  ID:???.net(1523)
もう一つ教えて下さい。
>192さんの方式ですと出力が
name, code になりますが name のみにして distinct したいのですが
やり方が分かりません。
宜しくお願い致します。

1184
NAME IS NULL[sage]   投稿日:2016/12/24 15:01:12  ID:???.net(1523)
>194
その通りやってますか?
select文に指定している name しか表示しないはずですけど

先頭行に distinct 加えれば重複している name は消えます。
select distinct name from table2 t2,

1185
NAME IS NULL[]   投稿日:2016/12/25 01:34:13  ID:G9kEUO4A.net(4)
csvからphpmyadminでインポートしてるんだけど途中で止まってしまう
7000行くらいのデータが3000ちょいで切れて、その後継ぎ足しても10行程でまた切れる
あんまりsql関係ないけど原因わかる人いたら教えて
ちなみにxampp

1186
NAME IS NULL[sage]   投稿日:2016/12/25 02:16:42  ID:???.net(1523)
>195
勘違いでした。
select * ...
としていました。
うまく行きました。
ちなみに>192のような
selectの中に(select ... )があるのは何ていう方式なのでしょうか?
ググルためのキーワードを教えて下さい。

1187
NAME IS NULL[sage]   投稿日:2016/12/25 02:22:28  ID:???.net(1523)
えっ、データベースの板に来るくらいなら、いくらなんでもサブクエリという名前くらい知っとけよ

1188
NAME IS NULL[sage]   投稿日:2016/12/25 12:45:10  ID:???.net(1523)
>198
ありがとうございました。
サブクエリ、初めて耳にしました。難しいです。
一時テーブル(#テーブル)と言うやつとは違うんですか?

1189
NAME IS NULL[sage]   投稿日:2016/12/25 13:04:03  ID:???.net(1523)
一応ここは初心者スレって名前ついているし
ベテランから見たら知ってて当たり前と思う質問でも
優しく回答してやれよ

1190
NAME IS NULL[]   投稿日:2016/12/25 13:37:54  ID:GwZs/74I.net(2)
>196

php文字化けとかめんどくさいから
.Netとかでそういうのやってる

1191
NAME IS NULL[]   投稿日:2016/12/25 23:40:17  ID:G9kEUO4A.net(4)
195だが
エラー行から改めて入れて、エラー行から改めて入れて
何回かやったら全部入ったわ
原因はわからん
なんやら文字コード的なエラーメッセージだった気がする

1192
NAME IS NULL[]   投稿日:2016/12/26 11:14:14  ID:fjjmXLRb.net(2)

1193
NAME IS NULL[]   投稿日:2016/12/26 17:20:52  ID:5PC6tP3J.net(2)
DBに突っ込んだデータに対してちょっと込み入った操作をしたいとき、
例えば、「ORDER BY id ASC した状態で、前の行と比較して DATA の値が2以上離れてる行が3行以上続く」ケースを抜き出したいとき、
一般的に (個人的にでもいいです) どんなやり方が最も望ましいんでしょうか?

全行ガサッと取ってきてプログラム側でせこせこ判定していく以外思いつけなくて、これでいいのか不安です

1194
NAME IS NULL[sage]   投稿日:2016/12/26 18:47:08  ID:???.net(1523)
>204
SQLや処理系ごとの拡張で頑張るとか
ストアドで処理するとか

それだけではどの方法が最善かはわからん

1195
NAME IS NULL[sage]   投稿日:2016/12/26 18:52:31  ID:???.net(1523)
>204
実現できる方法でやる。
結果が問題なければ
そもそも何を不安に思う?
それは何故よ?

1196
NAME IS NULL[sage]   投稿日:2016/12/26 19:34:01  ID:???.net(1523)
>204
window関数

1197
NAME IS NULL[sage]   投稿日:2016/12/26 20:24:10  ID:???.net(1523)
日本終了

ーーーーーーーーーーーーーーーーー
 22日からの大雪で航空機が相次いで欠航となった北海道の新千歳空港で、24日夜、100人あまりの中国人が抗議し激しく詰め寄る騒ぎがあった。

1198
NAME IS NULL[sage]   投稿日:2016/12/26 22:19:59  ID:???.net(1523)
>204
window関数のlagを使った例

select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;

1199
NAME IS NULL[sage]   投稿日:2016/12/26 22:22:29  ID:???.net(1523)
select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;

1200
NAME IS NULL[sage]   投稿日:2017/01/02 16:54:20  ID:???.net(1523)
教えて下さい。
カラムが
code,:index
name:名前
date_from:始めの日付 2017/1/1
date_to:終わりの日付 2017/1/3
days:差分 2
というレコードが1つあった場合に

2017/1/1 index 名前
2017/1/2 index 名前
2017/1/3 index 名前

という風に出力するSQL文を教えて下さい。
ちなみに postgresql です。

1201
NAME IS NULL[sage]   投稿日:2017/01/02 17:15:10  ID:???.net(1523)
>days:差分 2

このカラムの意味が分からない

1202
NAME IS NULL[sage]   投稿日:2017/01/02 20:22:33  ID:???.net(1523)
質問させていただきます。

2017-01-01 01:00:00
2017-01-02 01:00:00
2017-01-03 01:00:00
2017-01-04 01:00:00
といったdatetime型(Y-m-d H:i:s)のレコードdtimeを持つt1テーブルと
2017-01-02
2017-01-03
といったdate型(Y-m-d)のレコードdateを持つt2テーブルがあります。

t1テーブルのdtimeからt2テーブルのdateと日付(Y-m-d)部分が一致しないレコードを取り出すにはどのような記述をすれば良いでしょうか
この例の場合はdateにある2,3日のレコードを省いて1,4日のレコードのみを取り出したいです。

1203
NAME IS NULL[sage]   投稿日:2017/01/02 20:37:55  ID:???.net(1523)
>211
365行のテンポラリテーブルを用意してうんぬん

1204
NAME IS NULL[sage]   投稿日:2017/01/02 20:39:30  ID:???.net(1523)
>213
標準SQLの範囲じゃないような気もするけど、
DateTime型からDateだけ取り出す関数があるだろうからそれを使う。

1205
NAME IS NULL[sage]   投稿日:2017/01/02 21:38:43  ID:???.net(1523)
>211
Select date_from + g.gs as 日付
, code1,name
From Test1 t
,(
  select generate_series(0,10) as gs
) g
Where g.gs <= t.days;


でも>212が言うようにdaysは演算で処理すべきだべ

1206
NAME IS NULL[sage]   投稿日:2017/01/02 21:45:28  ID:???.net(1523)
>213
mysql と仮定して
select dtime from t1 where
date(dtime) not in (select date from t2);

1207
NAME IS NULL[sage]   投稿日:2017/01/03 09:50:33  ID:???.net(1523)
>214,216
できました。ありがとうございました。

>212
テーブル設計自体はすでにあったものでして…

1208
NAME IS NULL[sage]   投稿日:2017/01/03 10:39:07  ID:???.net(1523)
>215
>217
できました、ありがとうございました。
datetimeをdateに置き換える簡単な方法があったんですね。

1209
NAME IS NULL[sage]   投稿日:2017/01/14 10:16:41  ID:???.net(1523)
phpmyadminでデータベースを作成しようと思ったのですがSQLタブのテキストエリアにコピペができません(右クリックしてもコピー、切り取り、貼り付けがでない)
コピペをするのに設定などがあるのでしょうか?

1210
NAME IS NULL[]   投稿日:2017/01/14 10:36:37  ID:NxfK13Qk.net(2)
MySQLの質問させてください
データ更新するとき、phpmyadminのインポートで更新するには、sqlのファイルはどのように書けばいいのでしょうか?

新規作成するときは、INSERT文でこんな風にしました
上書きするときの書き方があれば教えてください
INSERT INTO `sample_table` (`abc_id`, `efg_id`, `meta_key`, `meta_value`) VALUES
(202, 4002, '_thumbnail_id', '4001'),
(212, 4012, '_thumbnail_id', '4011'),
(222, 4022, '_thumbnail_id', '4021');

1211
NAME IS NULL[sage]   投稿日:2017/01/14 12:04:14  ID:???.net(1523)
外部結合クエリで
・A LEFT JOIN B
・B RIGHT JOIN A

これらは全く同じものではなく、結果が異なる場合があるので
外部結合は左のみ使うべしってどこかのサイトで見た記憶がある
どなたかそのカラクリを知っていたら教えて

1212
NAME IS NULL[sage]   投稿日:2017/01/14 18:06:07  ID:???.net(1523)
>222
俺の中ではそんな事ないから答えられない

1213
名無しさん[]   投稿日:2017/01/14 18:09:24  ID:/fuRSrl8.net(2)
無料誹謗中傷対策のブッダワークス
http://www.buddha-works.net

1214
NAME IS NULL[sage]   投稿日:2017/01/14 20:16:43  ID:???.net(1523)
>222
見たサイトの運営者に聞け

1215
NAME IS NULL[sage]   投稿日:2017/01/14 21:05:14  ID:???.net(1523)
>221

insertでするなら on duplicate key update
又は replaceでというのも

それぞれについて説明をちゃんと読んでから使ってね

1216
NAME IS NULL[sage]   投稿日:2017/01/15 22:54:38  ID:???.net(1523)
>226
ありがとうございます!
確認して使ってみます

1217
NAME IS NULL[]   投稿日:2017/01/16 18:03:02  ID:tiD/G6HX.net(2)

1218
NAME IS NULL[sage]   投稿日:2017/01/19 06:50:34  ID:???.net(1523)
DISTINCT がキーボードで打ちづらいです

1219
NAME IS NULL[sage]   投稿日:2017/01/19 12:41:28  ID:???.net(1523)
そんなあなたにオススメDvorak配列キーボード

1220
NAME IS NULL[sage]   投稿日:2017/01/19 18:01:27  ID:???.net(1523)
ユーザー登録ありのシステムを組むにあたってユーザーが2種類いる場合
テーブルは分けるべきでしょうか?

例えば、Amazon マーケットプレイスのような
販売ユーザーと購入ユーザーの2種類のユーザーが存在する
このような場合のテーブル設計についてご教示いただけると有り難いです。

スレ違いでしたらすいません。

1221
NAME IS NULL[sage]   投稿日:2017/01/19 18:18:15  ID:???.net(1523)
>231
DB設計を語るスレ 9

1222
NAME IS NULL[sage]   投稿日:2017/01/19 18:56:48  ID:???.net(1523)
>232
スレ違いでしたねすいません
スレを教えていただきありがとうございます。

1223
NAME IS NULL[]   投稿日:2017/01/24 21:51:15  ID:oe0NRhg4.net(2)
何もしていない普通の一般人の自宅に隠しカメラを取り付け
それをネットでリアルタイム配信

仲間という人間に対する盗聴盗撮生ネット配信の会

しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる

そんなことが今この国では行われています

仄めかしの隠語は
猫 穴 水 仲間 

1224
NAME IS NULL[]   投稿日:2017/01/26 14:18:16  ID:73KKygNS.net(2)

1225
NAME IS NULL[]   投稿日:2017/01/28 12:44:07  ID:T1kC9Cn+.net(2)

1226
NAME IS NULL[sage]   投稿日:2017/01/31 13:26:45  ID:???.net(1523)
selectで取得するカラムにAUTO_INCREMENTを指定する方法はありませんか

1227
NAME IS NULL[sage]   投稿日:2017/01/31 17:11:46  ID:???.net(1523)
>237
取得したレコードに連番を付けたいなら方法はある
もしそうなら、これ以降は自分が使っているデータベーススレに移動しろ

1228
NAME IS NULL[sage]   投稿日:2017/02/01 19:11:49  ID:???.net(1523)
>237
開始番号はどうやって決めるの?

1229
NAME IS NULL[sage]   投稿日:2017/02/02 07:10:22  ID:???.net(1523)
普通は1からだろ100からとか別でも足せばいい

1230
NAME IS NULL[sage]   投稿日:2017/02/06 16:33:18  ID:???.net(1523)
>238
どのDBでも大差ないだろ・・・
と思って実験したらmysqlとoracleとpostgresとsqliteで全部やり方違うのな
ちょっと面白かった

1231
NAME IS NULL[]   投稿日:2017/02/08 00:06:58  ID:wCjGsKbG.net(2)
>239
フェッチした順に普通は1から振られる。

1232
NAME IS NULL[sage]   投稿日:2017/02/08 23:19:57  ID:???.net(1523)
質問させて頂きます

社員IDひとつに対して10行の権限管理レコードが必要です
これを500人分ひとつのテーブルに追加します

レコード例

社員ID, 画面ID, 閲覧, 編集, 削除, …
00000, W001, true, false, false, …
00000, W002, true, true, true, …

00000, W010, false, false, false, …

権限管理10行のテンプレと追加したい社員IDのリストはあります
SQL Management StudioかAccessを用いて作業したいのですが、この道具をどのように活かしてクエリを書けばいいのか思い浮かばなかったので質問させて頂きました
アドバイスよろしくお願いします

1233
NAME IS NULL[]   投稿日:2017/02/09 01:15:59  ID:I+KHRssK.net(4)
>243
絞り込み条件が社員IDと画面IDなんだろ?
何がやりたいのか書いてくれ。

1234
NAME IS NULL[sage]   投稿日:2017/02/09 07:12:02  ID:???.net(1523)
>243
手作業多めでいいなら
1 適当なエディタでカンマをタブに変換
2 excelを開いてシート全体を文字列に設定
3 1をシートに貼り付け
4 テーブルとおなじ列に加工
5 accessのテーブルに貼り付け
まあinsert文に加工して実行でもいいかもね

1235
NAME IS NULL[]   投稿日:2017/02/09 09:16:23  ID:I+KHRssK.net(4)
>245
どう読んだらCSVファイルの取り込みと解釈できるのか?

1236
NAME IS NULL[sage]   投稿日:2017/02/09 12:27:52  ID:???.net(1523)
>244-246
レスありがとうございます

今回は>245さんのアドバイスを元に
社員IDと画面IDのテンプレを二重ループで合体させてテキストに出力した5000行を
テキストエディタとExcelで整形してAccessに貼り付けて追加しました

1237
NAME IS NULL[sage]   投稿日:2017/02/09 12:36:20  ID:???.net(1523)
馬鹿がよく分からん絡み方してるw

1238
NAME IS NULL[sage]   投稿日:2017/02/09 18:13:26  ID:???.net(1523)
言語の設定ってインストールするときに指定する仕様なんですか?
何も指定しないと勝手にユニコードになると思っていたのですが

1239
NAME IS NULL[sage]   投稿日:2017/02/09 18:16:49  ID:???.net(1523)
>249
自分が使っているデータベーススレに移動して、疑問に思っていることをもっと具体的に聞け

1240
NAME IS NULL[sage]   投稿日:2017/02/09 18:30:19  ID:???.net(1523)
>250
移動します
SQLServer2012なんだけど
俺もよくわかってない

1241
NAME IS NULL[sage]   投稿日:2017/02/09 22:23:19  ID:???.net(1523)
>243
insert ... select ... from 権限管理10行のテンプレ (innnerとかcrossとか)join 追加したい社員IDのリスト
で行けるんじゃないのか
もうエクセル整形でやったのならそれでいいけど

1242
NAME IS NULL[sage]   投稿日:2017/02/09 22:32:25  ID:???.net(1523)
何をやろうとしているかは大体想像できるんだが、
こういう仕組みを実装する時って、
個人単位で権限を操作するのかな?
新しい機能が追加される度に、全てのユーザーに
権限の可否を設定しないといけなくならないか?

1243
NAME IS NULL[]   投稿日:2017/02/10 00:54:29  ID:UY3eO74e.net(2)
>253
ロール

1244
NAME IS NULL[sage]   投稿日:2017/02/10 03:00:09  ID:???.net(1523)
>252
自分も「これは直積(cross join)でやるかな」と思ったんだけど
直積って実用上はあんまり出てこないんだよな
(SQLの考え方としてはとても重要だと思うのだけど)
それを初心者スレで勧めていいものかと躊躇ってしまった

1245
NAME IS NULL[sage]   投稿日:2017/02/10 06:43:28  ID:???.net(1523)
244書いたの俺だけどリストって書いてあったから
深く考えずにテキストファイルかなんかだと思ったわ
騒がせてすまんね

1246
NAME IS NULL[sage]   投稿日:2017/02/10 08:29:16  ID:???.net(1523)
>243
要件にもよるかも知らんが事前に全部追加せんでいい方向もある。
ユーザーテーブルとの乖離にどう対処するか面倒だし。
ユーザーテーブルがなかったら、うん、まぁ、うん。

1247
NAME IS NULL[sage]   投稿日:2017/02/15 17:17:09  ID:???.net(1523)
超初心者です。
ユーザーごとに掲示板を作る場合
例えば
boardsというテーブルを作って、すべての掲示板の書き込みをそこで管理するのがいいのか、
それともユーザーごとに001boardsみたいにテーブルを作って管理するのがいいのでしょうか?
一元管理の場合、書き込み数が多くなった場合に処理が遅くなるなどの、問題点はないでしょうか?

アドバイスをよろしくおねがいします<(_ _)>

1248
NAME IS NULL[]   投稿日:2017/02/15 17:33:15  ID:IlwZKpGL.net(2)
>258
ユーザーごとにテーブルを作るのは管理がたいへんだろ。性能の問題はかなりのデータ量でないかぎりは問題ないと思っていい。

1249
NAME IS NULL[sage]   投稿日:2017/02/15 17:53:19  ID:???.net(1523)
>259
一元管理で設計してみたいと思います。
アドバイスありがとうございました。

1250
NAME IS NULL[sage]   投稿日:2017/02/15 23:57:28  ID:???.net(1523)
>258
ユーザーごとだろ普通

1251
NAME IS NULL[sage]   投稿日:2017/02/16 01:27:11  ID:???.net(1523)
>261
ユーザーごとだとして、
例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

この場合レンタルサーバーなのでsqlite3を使うことになると思います
(Mysqlはテーブル数の制限がある)

1252
NAME IS NULL[sage]   投稿日:2017/02/16 01:33:57  ID:???.net(1523)
>261
アホか

1253
NAME IS NULL[sage]   投稿日:2017/02/16 01:39:58  ID:???.net(1523)
レンタルサーバー運営、やろうってこと?

1254
NAME IS NULL[sage]   投稿日:2017/02/16 01:45:38  ID:???.net(1523)
レンタルサーバーでサイトを作るだけです
そこでユーザー登録をして、ユーザーごとに専用の掲示板を建てるイメージです

1255
NAME IS NULL[sage]   投稿日:2017/02/16 01:51:19  ID:???.net(1523)
その程度なら一つのテーブルで良いと思うけど
不具合あると、隣のユーザーの掲示板が覗けるとかあるかもね

1256
NAME IS NULL[sage]   投稿日:2017/02/16 02:04:14  ID:???.net(1523)
>266
アドバイスありがとうございます。

1257
NAME IS NULL[sage]   投稿日:2017/02/16 07:12:43  ID:???.net(1523)
ユーザー退会したらデータどうすんの?
破棄するならテーブル別がらくじゃね
同一テーブルだと日次で深夜にでも削除実行するんか

1258
NAME IS NULL[sage]   投稿日:2017/02/16 07:20:00  ID:???.net(1523)
また削除フラグの話にw

1259
NAME IS NULL[sage]   投稿日:2017/02/16 07:42:42  ID:???.net(1523)
盛り上ってまいりましたw

1260
NAME IS NULL[sage]   投稿日:2017/02/16 07:47:37  ID:???.net(1523)
>262
なおさら別テーブルだね

1261
NAME IS NULL[sage]   投稿日:2017/02/16 12:00:10  ID:???.net(1523)
>268
>271
頭湧いてんな

1262
NAME IS NULL[sage]   投稿日:2017/02/16 12:05:27  ID:???.net(1523)
>272
sqliteで複数ユーザーが
同一テーブルにアクセス、

まだわからないかなw

1263
NAME IS NULL[sage]   投稿日:2017/02/16 15:04:33  ID:???.net(1523)
>262
> (Mysqlはテーブル数の制限がある)
どこ情報かしらないが、普通は制限はないよ

また、仮にsqlite3を使うとしたとき、重大な問題が別に発生する
それは、誰かが書き込みをするとファイルがロックするということ
要件的にそれで大丈夫かどうかは熟考する必要がある

逆にMySQLを使う場合でもユーザ単位でテーブルを分割する場合もある(ユーザIDによる水平分割)
ソシャゲ界隈では良くあること
これも、要件と相談してからだな

1264
273[sage]   投稿日:2017/02/16 15:10:47  ID:???.net(1523)
あ、テーブル数の制限って、レンタルサーバだからなのか
なるほどねー

1265
NAME IS NULL[sage]   投稿日:2017/02/16 16:32:37  ID:???.net(1523)
まあこのまま続けてたら半年後にはなんでこんなバカな質問したんだろうと思うこと請け合い

1266
NAME IS NULL[sage]   投稿日:2017/02/16 16:51:32  ID:???.net(1523)
ユーザ数が1万人を超えるようなサービスを、MySQLのテーブル数が制限されるようなゴミレンサバで実行するなんて・・・

すごーい(別の意味で)

1267
NAME IS NULL[sage]   投稿日:2017/02/16 17:08:18  ID:???.net(1523)
金取るシステムとは思えん
無料サービスだろ
エラーが発生してもデータが壊れても、すいませんテヘで済むような奴

1268
NAME IS NULL[sage]   投稿日:2017/02/16 21:27:52  ID:???.net(1523)
>277
例えばな
たーとーえーばーww

1269
NAME IS NULL[sage]   投稿日:2017/02/16 21:34:17  ID:???.net(1523)
>279
君がいるだーけーでー

1270
NAME IS NULL[sage]   投稿日:2017/02/16 22:26:13  ID:???.net(1523)
盛り下がってまいりました、、、

1271
NAME IS NULL[sage]   投稿日:2017/02/16 22:44:43  ID:???.net(1523)
会員数1万人のWebベースのサービスやりたいんだったら、SQLがどうのではなく、
それなりの通信環境、ハードウエア、システム要員を用意しないと駄目だろう

1272
NAME IS NULL[sage]   投稿日:2017/02/17 07:10:18  ID:???.net(1523)
そもそもこんなところで質問するようなやつなんだから
訳分からず質問してるだけだろ
察して遊んでやれよ

1273
NAME IS NULL[sage]   投稿日:2017/02/17 09:29:17  ID:???.net(1523)

1274
NAME IS NULL[sage]   投稿日:2017/02/17 09:51:42  ID:???.net(1523)
>例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

要求仕様じゃないかな?

1275
NAME IS NULL[sage]   投稿日:2017/02/17 17:25:57  ID:???.net(1523)
テーブル名をフラグに使ったことならあるよ
テーブルがオープンできない=それは未使用

当時はみな気がくるっていた

1276
NAME IS NULL[sage]   投稿日:2017/02/23 21:19:47  ID:???.net(1523)
これからSQL勉強する者です
独学で本を参考にするつもりですが、まずSQLでデータベースから抽出できます、といえる程度になるにはどのくらいの期間見込めばいいでしょうか?

1277
NAME IS NULL[sage]   投稿日:2017/02/23 21:40:13  ID:???.net(1523)
30分

1278
NAME IS NULL[sage]   投稿日:2017/02/23 21:40:25  ID:???.net(1523)
抽出だけなら、5分も掛からないんじゃないか?

1279
NAME IS NULL[sage]   投稿日:2017/02/23 22:36:11  ID:???.net(1523)
本を買いにいく時間がある

1280
NAME IS NULL[sage]   投稿日:2017/02/23 22:43:24  ID:???.net(1523)
いや真面目に・・3ヶ月くらいだろうか?ととりあえず予測を立てたのですが・・
実務でできないのが痛いところなのですが

1281
NAME IS NULL[sage]   投稿日:2017/02/23 22:47:49  ID:???.net(1523)
何をインストールするのか知らんけど、つまずく奴はRDBを自分のPCにインストールするとこからつまずくからなw
あれこれやる前から考えてもしょーがない。自分でコマンドをどんどん入れてみるこったよw

1282
NAME IS NULL[sage]   投稿日:2017/02/23 22:50:45  ID:???.net(1523)
>287
七分

1283
NAME IS NULL[sage]   投稿日:2017/02/23 22:52:18  ID:???.net(1523)
>291
そこ期間の内訳出してみ

1284
NAME IS NULL[sage]   投稿日:2017/02/23 22:54:07  ID:???.net(1523)
君がPCを所有していて、OSが入っていて、ネットに接続できているなら
適当なSQLをダウンロードしてインストールすれば
勉強は今すぐにでも開始できそうなんだが

1285
NAME IS NULL[sage]   投稿日:2017/02/23 22:55:54  ID:???.net(1523)
>291
あんたの才能とやる気次第としか言えない
SQLはかなり癖のある言語だから、ダメな人は1分で本を閉じて終わり

1286
NAME IS NULL[sage]   投稿日:2017/02/23 22:58:52  ID:???.net(1523)
>292
MySQL
能書きいうよりまずやることは経験済み納得だが、今後の方向づけを検討しての質問だった

1287
NAME IS NULL[sage]   投稿日:2017/02/23 23:01:31  ID:???.net(1523)
>295
そうなんですよ
いまうちmacしかも壊れた・・(へぼくてすまん)
つうことでうちは会社があまりダウンロードとかうるさくないのですが、
会社のwinマシンに落とすことを目論み中ですが、会社PCに個人で落としてる人いますか?

1288
NAME IS NULL[sage]   投稿日:2017/02/23 23:27:33  ID:???.net(1523)
それはここで聞かずに、上司に聞くべきことだろ
ちゃんと理由を説明して、何をインストールしたいか説明し
それが仕事で必要なことだとなればインストール可能じゃないのかな?

君の会社での役割が管理者で、PCの設定に関して権限があるなら、聞かなくてもいいだろうけど

1289
NAME IS NULL[sage]   投稿日:2017/02/23 23:34:32  ID:???.net(1523)
やはりこっそりはまずいか…
実務じゃ必要ないって言われるのが関の山だ
だってうちの上司ろくに関数もわからないお馬鹿…なんでもマッチョに力技が得意技なもんで
なくせに色々要求してくる
んでそんなとこを抜け出すためのSQL習得なのです
Winマシンを大人しく速攻買おう
つうことで安いの探すとこから始めます
Dellあたりかなー できたらVAIO

1290
NAME IS NULL[sage]   投稿日:2017/02/24 05:16:28  ID:???.net(1523)
けっこうまじめに質問したんだけどやっぱ2ちゃんだな
冷やかしだけで答えてはもらえないか
ま、いいやとっととやるから

1291
NAME IS NULL[sage]   投稿日:2017/02/24 07:04:10  ID:???.net(1523)
>301
ガンバレ

1292
NAME IS NULL[sage]   投稿日:2017/02/24 08:44:57  ID:???.net(1523)
真面目に回答しても冷やかしとしか受け取って貰えない w

1293
NAME IS NULL[sage]   投稿日:2017/02/24 09:11:23  ID:???.net(1523)
>301
だいぶ抽象的で、何に役立つのか
分かりにくい質問だったことは
覚えておいて。

1294
NAME IS NULL[sage]   投稿日:2017/02/24 10:00:29  ID:???.net(1523)
DB板は、おふざけな質問でない限りマトモに答えてくれるよ

1295
NAME IS NULL[sage]   投稿日:2017/02/24 11:03:39  ID:???.net(1523)
SQLでデータを抽出する基本だけなら、みんな言うように1日でできるぞ
select文流すだけだからな

問題は、SQLを発行する方法とそのための環境の構築が難しいだけで

1296
NAME IS NULL[sage]   投稿日:2017/02/24 12:02:44  ID:???.net(1523)
>301
また聞きにおいで

1297
NAME IS NULL[]   投稿日:2017/02/24 18:58:00  ID:U+kKk5Yi.net(2)
>306
基本ってなんだよ?

1298
NAME IS NULL[sage]   投稿日:2017/02/24 20:33:06  ID:???.net(1523)
>308
select hello from world

1299
NAME IS NULL[]   投稿日:2017/02/24 20:52:10  ID:dYCyIIDS.net(2)
まず初心者には結合が1日で理解できるかどうか。

1300
NAME IS NULL[sage]   投稿日:2017/02/24 21:09:40  ID:???.net(1523)
批判も応援する言葉もどちらもありがとう

290で3ヶ月と言ったのは、会社のちょっとデータ詳しいちょー意地悪なおっさん(でも非エンジニアで営業部のデータ取りまとめしてる程度)に
SQL独学で3ヶ月でてきて当たり前、オレは3ヶ月で覚えた、と言われて

もちろんそれはマウントしたいだけだからどの辺りまでかなんて言わないしこっちも聞かない

だから漠然とした答えに困るような素人くさい愚問なアホな質問とわかっていたんだけど、
とりあえずの導入としてはどのくらい見ればいいかな、と知りたくなってしまって

だから答えてくれた時間とかはその通りでもあるし、その限りでないこともわかってる

そのおっさんは独学で覚えたのが自慢で、でもそのおっさんがExcelで作ったものはちょっとした普通の作業が汚い

SEの人と一緒に働いたとき当たり前のことをちゃん綺麗に整えて作るからとても感心した

そんななんやかやがあり
スレ違いになり申し訳ない

Hello world

1301
NAME IS NULL[sage]   投稿日:2017/02/24 23:02:19  ID:???.net(1523)
本日、postgresqlをDB2に替えたらwebアプリが動かなくなったわ。
もう逃げたい。俺のせいじゃないけど。

1302
NAME IS NULL[sage]   投稿日:2017/02/25 00:22:52  ID:???.net(1523)
テストもせずにいきなり入れ替えたのかよ
そんなことができる現場、逆にすごい楽しそうだな

1303
NAME IS NULL[sage]   投稿日:2017/02/25 20:49:52  ID:???.net(1523)
SQL言語ってオラクルとかMysqlとか、MSで違うんですか?

1304
NAME IS NULL[sage]   投稿日:2017/02/25 20:58:21  ID:???.net(1523)
基本は同じ
それぞれ拡張している部分がある

1305
NAME IS NULL[sage]   投稿日:2017/02/25 21:38:20  ID:???.net(1523)
要するに、違う。

1306
NAME IS NULL[sage]   投稿日:2017/02/25 22:09:37  ID:???.net(1523)
SQLとMySQLって違うの?
でSQLがあってのOracle?

1307
NAME IS NULL[sage]   投稿日:2017/02/25 22:27:30  ID:???.net(1523)
ここでそんな質問する前に本の1冊でも読めよ

1308
NAME IS NULL[sage]   投稿日:2017/02/25 23:02:52  ID:???.net(1523)
>317
単語それぞれでググってみればわかる
MySQLとOracleはデータベースソフトウェア製品の名前
SQLはそれらで共通に使われている(ただし方言あり)言語の名前

1309
NAME IS NULL[sage]   投稿日:2017/02/25 23:11:02  ID:???.net(1523)
そんくらいわかってるわ

1310
NAME IS NULL[sage]   投稿日:2017/02/25 23:40:52  ID:???.net(1523)
誰が質問者か分からなくなってきた

質問者はsageをせずに書き込むと良いですよ
そうすれば、ID表示でますから

1311
NAME IS NULL[]   投稿日:2017/02/26 14:45:56  ID:LVGuIyS4.net(2)
SQL ServerとMySQLを単にSQLと略す馬鹿がいるので混乱する。

1312
NAME IS NULL[sage]   投稿日:2017/02/26 14:52:17  ID:???.net(1523)
>322
それだ

1313
NAME IS NULL[sage]   投稿日:2017/02/26 16:08:09  ID:???.net(1523)
初めてダウンロード
PostegerSQLとMySQLどちらがいいだろうか?

1314
NAME IS NULL[sage]   投稿日:2017/02/26 16:09:23  ID:???.net(1523)
両方入れとけ
管理方法が違うのでコンソールまたはツールで馴染んだほう残せばいい

1315
NAME IS NULL[sage]   投稿日:2017/02/26 16:21:31  ID:???.net(1523)
ツール使うなら、両者ともそれほど違いはなかったと思う
コンソールだと、違いがあるから慣れるまで時間掛かりそう

1316
NAME IS NULL[sage]   投稿日:2017/02/26 16:30:27  ID:???.net(1523)
>325
おけ
両方入れる

>326
んーよくわからず、まだ先のことだろうから後で考えるわ

1317
NAME IS NULL[sage]   投稿日:2017/02/26 16:31:06  ID:???.net(1523)
>325,326
ありがとです

1318
NAME IS NULL[sage]   投稿日:2017/02/28 12:15:15  ID:???.net(1523)
SQLを触ったことないんですが、クエリ文を覚えるためにはどうすればいいでしょうか?
C#という言語でLINQというものは触ったことあるのでまったくわからないとは思わないのですが・・・

1319
NAME IS NULL[sage]   投稿日:2017/02/28 13:53:34  ID:???.net(1523)
>329
普通の人は、本買って読むんだけど・・・

1320
NAME IS NULL[sage]   投稿日:2017/02/28 14:01:20  ID:???.net(1523)
とりあえず環境を用意する

1321
NAME IS NULL[sage]   投稿日:2017/02/28 18:25:09  ID:???.net(1523)
SQL試す環境つくればいいよ、上にあるMySQLやPostgreSQLをローカルに入れて
PgAdmin3とかMySQL Workbenchとか動かしてみては
SQLite3でも試せるけどね

1322
NAME IS NULL[]   投稿日:2017/02/28 19:39:01  ID:jzPtOTcH.net(2)
>329
SQLとクエリと言ってる時点でおかしい。たぶんSQL Serverが前提なんだろうな。

1323
NAME IS NULL[]   投稿日:2017/02/28 20:04:26  ID:yUIIsXa+.net(2)
sql serverが前提だとなんか困るのかな

1324
NAME IS NULL[sage]   投稿日:2017/02/28 21:21:44  ID:???.net(1523)
職場でAccessって使う人少ないですか?

1325
NAME IS NULL[sage]   投稿日:2017/02/28 21:58:28  ID:???.net(1523)
>335
質問の意図がわからない
それをここで俺らに聞いて何をしようというのだ?

1326
NAME IS NULL[sage]   投稿日:2017/02/28 22:07:13  ID:???.net(1523)
>335
えっ!?!?
いやいや普通もれなく全員清掃係りの人も警備の人も使うでしょ
おたく使ってないの???

1327
NAME IS NULL[sage]   投稿日:2017/02/28 23:17:08  ID:???.net(1523)
使ったt事あるよ。で、それがどうした。

1328
NAME IS NULL[sage]   投稿日:2017/03/01 02:02:24  ID:???.net(1523)
accessは帳票必要なシステムでは楽チンだけど
帳票なかったらphpのほうが楽チンだな

1329
NAME IS NULL[sage]   投稿日:2017/03/01 07:11:22  ID:???.net(1523)
>329
業務で使うsqlのパターン は限られてるから
初心者向けの本を買えばいいと思うよ

1330
NAME IS NULL[sage]   投稿日:2017/03/01 12:20:17  ID:???.net(1523)
業務で使わないsqlは多種多様なのか?違いが分からん

1331
NAME IS NULL[sage]   投稿日:2017/03/01 12:40:46  ID:???.net(1523)
>341
そうだよ
違うよ

1332
NAME IS NULL[sage]   投稿日:2017/03/01 15:57:14  ID:???.net(1523)
DB自体の操作やユーザー管理も含めて言っているのじゃないかな?

1333
NAME IS NULL[sage]   投稿日:2017/03/01 18:47:02  ID:???.net(1523)
業務で使う時は特殊な記述を避けるというだけの話かと

1334
NAME IS NULL[sage]   投稿日:2017/03/01 20:05:39  ID:???.net(1523)
sqlに特殊な記述なんてあったか?

1335
NAME IS NULL[sage]   投稿日:2017/03/02 03:01:35  ID:???.net(1523)
顧客id 顧客名
取引id 顧客id 取引額 取引日

こんな2つの顧客テーブルと取引テーブルがあるとします。
取引テーブルの取引日と顧客idはUNIQUEな関係です(同じ日の再度の取引はない)。
ある顧客との、ある期間中どれだけ取引があったか(回数と総額)の計算をしたいです。

顧客テーブル
  顧客id INT PK
  顧客名 VARCHAR NN

取引テーブル
  取引id INT PK
  顧客id INT FK
  取引額 INT NN
  取引日 DATE NN
  UNIQUE (顧客id, 取引日)

インデックスを貼るべきところとかよくわからないのですが、テーブルはこんな感じでいいのでしょうか?
検索(WHERE)に取引日を使うので、取引日にもインデックス貼ったほうがいいのでしょうか?
あと取引日のDATE型なんですが、UNIXTIMEのようにある日からの起算のほうが検索早そうなのでINTにしたほうがいいですか?

1336
NAME IS NULL[sage]   投稿日:2017/03/02 06:14:34  ID:???.net(1523)
>取引日にもインデックス貼ったほうがいいのでしょうか?

それで検索をよくするんだったら良いんじゃないの。自分は株価テーブル作っててPKが(コード、出来高年月日)なんだけど、
出来高年月日での検索もするんでその出来高年月日にindex貼ったら実行スピードめちゃ上がったし

1337
NAME IS NULL[sage]   投稿日:2017/03/02 14:18:17  ID:???.net(1523)
>346
DATE型使っても、内部表現はバイナリー値だから実行スピードは変わらないだろう

1338
345[sage]   投稿日:2017/03/03 05:48:15  ID:???.net(1523)
>347-348
レスありがとうございます。
実例での効果まであげていただいて感謝です。
DATA型でも検索速度は変わらないとのことなので、
このままでCREATEしたいと思います。

1339
NAME IS NULL[sage]   投稿日:2017/03/03 09:25:17  ID:???.net(1523)
>349
なぜそう結論できる?

1340
NAME IS NULL[sage]   投稿日:2017/03/03 12:26:59  ID:???.net(1523)
当たり屋かよw

1341
NAME IS NULL[sage]   投稿日:2017/03/03 17:39:50  ID:???.net(1523)
(DATA型は)このままでってことだろう

1342
NAME IS NULL[]   投稿日:2017/03/04 06:08:32  ID:GZ+afmPr.net(2)
RDBMSの内部構造を意識するのが初心者なのかと。

1343
NAME IS NULL[sage]   投稿日:2017/03/04 07:48:26  ID:???.net(1523)
まあプログラムやってればその辺はちょっとは検討つくでしょう
JavaScriptみたいのしかやったことないとかだとDBいじる機会もなかなかないだろうし
ところでDATE型とINT型の検索速度の比較って
ググって見るとINT型のほうが早いみたいだけど

1344
NAME IS NULL[sage]   投稿日:2017/03/04 08:31:07  ID:???.net(1523)
郵便番号と地名が書いてるデータベースを作るとして
0から始まる北海道はとりあえず無視するとして
7桁のユニークな数字になるわけですが
そういう番号があっても主キーにせずオートインクリメントなサロゲートキーを作るべきですか?

1345
NAME IS NULL[sage]   投稿日:2017/03/04 08:46:24  ID:???.net(1523)
郵便番号は郵便局が自分たちの業務をやりやすくするために振っただけのものであって
地名との一対一の紐付けを保証するものではないし
郵便局の都合で変更されることもある
そのへんを理解した上で使うなら別にいいんじゃない?

1346
NAME IS NULL[sage]   投稿日:2017/03/04 09:03:59  ID:???.net(1523)
「郵便番号の」サロゲートだとしたらそのへんは何も変わらんが。

1347
NAME IS NULL[sage]   投稿日:2017/03/04 09:23:42  ID:???.net(1523)
>354
> ところでDATE型とINT型の検索速度の比較って
> ググって見るとINT型のほうが早いみたいだけど

そらそうよ。プログラムやってれば見当つくはず。

>355
困ったことに、郵便番号と地名は1:nです

1348
NAME IS NULL[sage]   投稿日:2017/03/04 09:32:54  ID:???.net(1523)
データベースは当然、1:n関係を表現できるだろうに。何を困ることがある?

1349
NAME IS NULL[sage]   投稿日:2017/03/04 09:34:36  ID:???.net(1523)
>348は嘘やったんやな

1350
NAME IS NULL[sage]   投稿日:2017/03/04 10:37:00  ID:???.net(1523)
郵便番号はちょっと例えが悪かったかな・・・
例えばクレジットカードとか連番だと都合が悪いけど一意な番号
それでもサロゲートは必要?

1351
NAME IS NULL[sage]   投稿日:2017/03/04 10:49:39  ID:???.net(1523)
そういう質問している人には必要ない。

1352
NAME IS NULL[sage]   投稿日:2017/03/04 11:01:27  ID:???.net(1523)
だってとりあえずauto incrementを主キーにしとけって書籍に書いてるんだもの

1353
NAME IS NULL[sage]   投稿日:2017/03/04 11:13:05  ID:???.net(1523)
晒せ。

1354
NAME IS NULL[sage]   投稿日:2017/03/04 11:36:56  ID:???.net(1523)
初心者にはあれこれいうよりベストな書き方覚えろっていう
ベストでもないオレオレ書き方教える書籍は多い
全部のテーブルにcreated updated作れみたいな

1355
NAME IS NULL[sage]   投稿日:2017/03/04 15:42:19  ID:???.net(1523)
SQLはなんで大文字が好きなの?

1356
NAME IS NULL[]   投稿日:2017/03/04 23:32:19  ID:b+Y4fejK.net(4)
>354
そもそもどのRDBMSのINT型なのか知らないが、標準SQLではコンピュータの数値表現としているので、速いのはあたりまえ。

ちなみにOracleでは標準SQLのINT型はNUMBER型なのでまったく違う。当然Oracleでは計算が遅くはなる。

1357
NAME IS NULL[]   投稿日:2017/03/04 23:33:46  ID:b+Y4fejK.net(4)
>366
プログラミング言語の歴史では、小文字をメインに使うようになったのはC言語あたりから。

1358
NAME IS NULL[sage]   投稿日:2017/03/04 23:57:32  ID:???.net(1523)
Oracleの場合、内部で大文字に変えていると聞いたことがある
本当かどうかは確かめたことないし、今もそうなのかは分からないが
使っていた当時は全部大文字で書いてたな

1359
NAME IS NULL[sage]   投稿日:2017/03/05 04:43:17  ID:???.net(1523)
DB側で用意してる関数含めてユーザ入力による変数になってる
テーブル名とかカラム名以外は全部大文字にしてる
`table` `long_table_name` `column` `long_column_name`
ご丁寧に``で囲んでるけどこれもいらんのよなあ
なんかいい規則があればいいんだけど

1360
NAME IS NULL[sage]   投稿日:2017/03/05 11:05:14  ID:???.net(1523)
基本的に大文字しか使えない環境が当たり前の頃からSQLあるからな、、、
COBOLでの EXEC SQL 文とか懐かしいなあ

1361
NAME IS NULL[]   投稿日:2017/03/05 15:50:25  ID:ZV3ds4gJ.net(2)
>369
それを言うのがいるけど、プログラマでそんなことを言ったら恥ずかしいぞ。大文字、小文字を区別しないなら大文字、小文字の判定処理が入るわけで、そこから大文字に変換する処理が遅くて問題になるなど阿呆みたいなこだわりだ。

1362
NAME IS NULL[sage]   投稿日:2017/03/06 00:07:50  ID:???.net(1523)
大文字に変換する処理が遅くて問題になるなんて誰か言ってた?

1363
NAME IS NULL[]   投稿日:2017/03/06 01:05:03  ID:VHVbqVdu.net(4)
>369 が書いてるが?

1364
NAME IS NULL[]   投稿日:2017/03/06 01:09:49  ID:VHVbqVdu.net(4)
大文字が大文字かどうかより、文字がなんなのかの判定も入るわけで、そんな処理時間はいつの時代のコンピュータの性能で考えているんだよw

こんなことを言い出したらRDBはあらゆることが遅すぎて使えない。現実にRDBはコンピュータの性能が上がったから使い物になるようになった歴史も知らないのか?

1365
NAME IS NULL[sage]   投稿日:2017/03/06 01:15:29  ID:???.net(1523)
>372
asp

1366
NAME IS NULL[sage]   投稿日:2017/03/06 02:48:06  ID:???.net(1523)
368本人です。何かお騒がせしてしまい済みません。
相当昔の話です。
動かしていたサーバーはW2k、CPUはP3、メモリー4G程度でした。
できるだけ負荷を減らせと言う指示の中で作業してました。

1367
NAME IS NULL[sage]   投稿日:2017/03/06 05:47:11  ID:???.net(1523)
パーサーの仕様で大文字小文字区別しないにしても
大文字しかパースできなくて変換処理が必要だとしても
それに判定を挟む必要もなければ
ただの一文にすぎないSQLに処理時間なんてギャグかよって話

1368
NAME IS NULL[sage]   投稿日:2017/03/06 07:05:39  ID:???.net(1523)
>378
お前の小さい脳みそこそギャグかよww

1369
NAME IS NULL[sage]   投稿日:2017/03/06 07:25:07  ID:???.net(1523)
↑アホ丸出し

1370
NAME IS NULL[sage]   投稿日:2017/03/06 07:28:15  ID:???.net(1523)
>379
構文解析にかける時間に比べれば
文字列の処理なんて微々たるものがわからないような猿

1371
NAME IS NULL[]   投稿日:2017/03/06 12:11:06  ID:0KbRjlYP.net(2)
>378
判定処理はいるだろw
文字がAならAかどうか判定する。

何この低レベルw

1372
NAME IS NULL[sage]   投稿日:2017/03/06 12:23:32  ID:???.net(1523)
小文字混ざってる前提で全て大文字にしてからパースすればいいだけってのは
プログラマーならわかるだろ

1373
NAME IS NULL[sage]   投稿日:2017/03/06 12:41:33  ID:???.net(1523)
>382
全部大文字にすればよいでしよw

1374
NAME IS NULL[]   投稿日:2017/03/06 15:24:30  ID:bDLzF0aS.net(2)
結局予約語だけ大文字で書けばいいの?
開発効率落ちまくるけどどの参考書もそうしてるよな

1375
NAME IS NULL[sage]   投稿日:2017/03/06 15:32:38  ID:???.net(1523)
コーディング規約ってのがそれぞれのチームなり部署なりにあるだろ?
それに従えば良いだろ。
んで自分一人のものだけなら好き勝手に

1376
NAME IS NULL[sage]   投稿日:2017/03/06 15:59:13  ID:???.net(1523)
そうなんだけどさ、大文字と小文字使い分けるのってすごい面倒なんだよなぁ
玄人の皆さんは使い分けなきゃいけない状況のときどうやって書いてるの?
毎回shift+capslockしてるの?てか列名日本語にするのほんとやめてください

1377
NAME IS NULL[sage]   投稿日:2017/03/06 16:09:32  ID:???.net(1523)
使い捨ては全部小文字
あとで見返すことがあるものは予約後大文字、シフトに指置けばいいべ

1378
NAME IS NULL[sage]   投稿日:2017/03/06 16:13:07  ID:???.net(1523)
>385
効率落ちまくるって、どんだけクエリ書いてるんだよ
300char/minだとして、大文字小文字意識しても5秒ほどしかかわらんだろ
つまり、1分の差がでるのに3600文字必要
毎日1万字書く奴がいたとしても、せいぜい3分/dayくらいの差だ

1379
NAME IS NULL[]   投稿日:2017/03/06 19:02:01  ID:aPuKjXeW.net(2)
>389
お前はキーパンチャーかwどんだけキーボードマスターだよw

1380
NAME IS NULL[sage]   投稿日:2017/03/06 19:18:44  ID:???.net(1523)
全部小文字でもいいだろ好きにしろ
ぱっと見てここSQLだなってわかるようにしたいなら大文字にすりゃいいし
動きゃいいんだよ

1381
NAME IS NULL[sage]   投稿日:2017/03/07 02:45:55  ID:???.net(1523)
>382
大文字にするにあたって元の文字が大文字か小文字か判定する必要はないって話だと思うんだが、
あなたが言うように判定するのは無駄なので判定しないのが普通。

1382
NAME IS NULL[sage]   投稿日:2017/03/07 10:30:00  ID:???.net(1523)
>389
キーパンチャーなみのタイプ速度で、普通は考えられないような量のクエリを1日にタイプするとしても、
それでも1日あたりの作業低下量は3分程度なんだが、>385はどんだけタイプしてんだよって話だ

読解力ない奴って、底が知れんわ

1383
NAME IS NULL[sage]   投稿日:2017/03/07 12:02:08  ID:???.net(1523)
そもそもSQL誕生して何十年も経ってるのにいまだにこの議論してんだから
大文字小文字の問題は根深いよな

>393
タイピング速度の問題ではなくてストレス的な意味の開発効率を言ってると思うぞ>385

1384
NAME IS NULL[sage]   投稿日:2017/03/07 13:44:27  ID:???.net(1523)
>394
この程度のコーディングルールでストレスとか、向いてないんじゃねーの?

1385
NAME IS NULL[sage]   投稿日:2017/03/07 13:54:22  ID:???.net(1523)
安価ミスしちゃうそそっかしい人はフォーマッタ使えばいいんじゃないでしょうか。

1386
NAME IS NULL[sage]   投稿日:2017/03/07 14:03:09  ID:???.net(1523)
>394
> 大文字小文字の問題は根深いよな
根深いっつーか、どっち派もいるというだけでしょ
他言語だっていつまでたっても中括弧の書き方レベルの議論が終わらないし

1387
NAME IS NULL[sage]   投稿日:2017/03/07 14:23:20  ID:???.net(1523)
てか、別に大文字小文字で開発効率が落ちる奴がいても不思議じゃない。
不思議じゃないが、だから何ってはなしで。
俺らには関係ない。

1388
NAME IS NULL[sage]   投稿日:2017/03/07 15:50:13  ID:???.net(1523)
スレチかも知れんがMac使ってるやつはSequel入れとけフリーでこんないいの
なかなかないぞ

1389
NAME IS NULL[sage]   投稿日:2017/03/07 16:33:49  ID:???.net(1523)
大文字小文字もインデントの具合も全てどうでもいいと思ってるが・・・

カンマを行頭に置く奴だけは許せん!!!

1390
NAME IS NULL[sage]   投稿日:2017/03/07 17:40:36  ID:???.net(1523)
俺もこの程度で効率落ちまくるなら、プログラマに向いてないと思うよ

1391
NAME IS NULL[sage]   投稿日:2017/03/07 17:52:14  ID:???.net(1523)
プログラマなら、たとえMISRA-C完全準拠を要求されても、淡々と従うものだ。

1392
NAME IS NULL[sage]   投稿日:2017/03/07 18:17:10  ID:???.net(1523)
>382
お前がw
このスレでw
一番低レベルだがなwww

1393
NAME IS NULL[sage]   投稿日:2017/03/07 21:19:09  ID:???.net(1523)
>382
何度詠んでもわらてまう

1394
NAME IS NULL[sage]   投稿日:2017/03/07 23:52:37  ID:???.net(1523)
俺は逆に面倒だと思う人のほうがプログラマには向いてるとおもうけどな
if so を考えるのって大事だと思うぞコーダーって意味なら向いてないと思うけど

1395
NAME IS NULL[sage]   投稿日:2017/03/08 12:54:37  ID:???.net(1523)
>405
面倒だと思うのはかまわない

ただ、この程度で効率落ちまくるレベルの奴は、プログラマに向いてないってだけだ

1396
NAME IS NULL[sage]   投稿日:2017/03/08 15:50:08  ID:???.net(1523)
「落ちまくる」のは向き不向きよりも不慣れなだけだろう

向き不向きの話をするなら、大文字で書くことに何の疑問も持たない人の方がプログラマに向いていない
理由があって大文字を選択してるなら良いことだと思うが

1397
NAME IS NULL[sage]   投稿日:2017/03/08 16:03:35  ID:???.net(1523)
マジでうざいわ。
いつまでやってんだ。

1398
NAME IS NULL[sage]   投稿日:2017/03/08 16:10:50  ID:???.net(1523)
>407
キーワードを大文字で書けくらい、即慣れるだろ
ふつーのプログラマなら、効率が落ちまくったりしません

1399
resumi[]   投稿日:2017/03/08 17:37:21  ID:hjh5f++s.net(2)
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。