板検索:
SQL初心者質問スレ (286)
まとめビュー
1
NAME IS NULL[]   投稿日:2016/05/12 05:29:07  ID:HmbS4CfD.net
SQL初心者用の質問スレッドです。


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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(2)
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
質問するときはRDBの名前くらいは書きましょう。

21
NAME IS NULL[sage]   投稿日:2016/08/07 07:38:31  ID:???.net(235)
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(235)
inputなのかinputなのか気になるが、、、
having by 使うケースかなこれ?
コメント1件

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

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

25
21[sage]   投稿日:2016/08/07 16:17:17  ID:???.net(235)
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なんて思いつきもしなかったです^^;
コメント1件

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

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

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

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

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

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

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

32
NAME IS NULL[sage]   投稿日:2016/08/21 09:41:45  ID:???.net(235)
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(235)
recordには全idすでにある前提?

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

とかは?
コメント2件

34
32[sage]   投稿日:2016/08/22 01:44:39  ID:???.net(235)
>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を書けずにいます
教えていただけると嬉しいです
よろしくお願いします
コメント2件

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

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

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

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

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

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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

55
NAME IS NULL[sage]   投稿日:2016/08/24 14:41:29  ID:jYRxe2VKj
元データ
列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(235)
SQLっていうか、DBそのものに関する質問になってしまうんですが。。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

77
NAME IS NULL[sage]   投稿日:2016/09/16 15:50:26  ID:???.net(235)
>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(235)
処理が必ず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;
コメント1件

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

80
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:12:26  ID:???.net(235)
>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(235)
>79
そんなのDBMSとオプティマイザの判断次第
カーディナリが十分高ければ、daiのインデックスは使われる可能性が高いだろ

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

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

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

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

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

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

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

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

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

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

91
NAME IS NULL[sage]   投稿日:2016/09/22 12:44:02  ID:???.net(235)
長文失礼します。
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(235)
ちなみに
SUBSTRING(url,1,LOCATE('/',url,8))  でblog_urlのどれかとマッチするurlが作れることがわかりました。

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

107
NAME IS NULL[sage]   投稿日:2016/10/06 00:19:48  ID:???.net(235)
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文を投稿しようとすると、ハッキング行為とみなされるみたい
コメント1件

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

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

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

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

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

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

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

113
NAME IS NULL[]   投稿日:2016/10/16 23:41:51  ID:yy6enVq7.net
兄弟関係の抽出 と 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
コメント3件

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

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

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

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

118
NAME IS NULL[]   投稿日:2016/10/17 07:35:53  ID:w90R1vLK.net
>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)
コメント3件

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

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

121
NAME IS NULL[]   投稿日:2016/10/17 19:50:25  ID:3tZ2amHg.net(3)
>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.学年
;
コメント1件

122
NAME IS NULL[]   投稿日:2016/10/17 20:30:12  ID:3tZ2amHg.net(3)
>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.学年
;
コメント2件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

140
NAME IS NULL[sage]   投稿日:2016/10/19 07:23:29  ID:???.net(235)
重複データ消すのに、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(235)
>122 >123

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

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

143
NAME IS NULL[sage]   投稿日:2016/10/25 01:39:06  ID:???.net(235)
以前見た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〇の方が正しいのかなあ、などと疑問が
コメント1件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

183
NAME IS NULL[sage]   投稿日:2016/12/24 02:14:16  ID:???.net(235)
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初心者なのでとっかかりが分かりません。
どういう命令でやるべきなのかヒントを教えて下さい。
コメント1件

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

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

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

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

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


189
NAME IS NULL[sage]   投稿日:2016/12/24 11:03:45  ID:???.net(235)
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です%'


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

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

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

192
NAME IS NULL[sage]   投稿日:2016/12/24 13:13:57  ID:???.net(235)
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;
コメント1件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

209
NAME IS NULL[sage]   投稿日:2016/12/26 22:19:59  ID:???.net(235)
>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(235)
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(235)
教えて下さい。
カラムが
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 です。
コメント2件

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

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

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

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日のレコードのみを取り出したいです。
コメント2件

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

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

216
NAME IS NULL[sage]   投稿日:2017/01/02 21:38:43  ID:???.net(235)
>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(235)
>213
mysql と仮定して
select dtime from t1 where
date(dtime) not in (select date from t2);
コメント1件

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

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

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

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

221
NAME IS NULL[]   投稿日:2017/01/14 10:36:37  ID:NxfK13Qk.net
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');
コメント1件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

社員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を用いて作業したいのですが、この道具をどのように活かしてクエリを書けばいいのか思い浮かばなかったので質問させて頂きました
アドバイスよろしくお願いします
コメント4件

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

まだわからないかなw

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

要求仕様じゃないかな?

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

当時はみな気がくるっていた
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

データベース板 タイトル検索

このスレッドが人気です(実況系)
実況 ◆ フジテレビ 82628 出家 (1000)フジ実況
実況 ◆ 日本テレビ 54261 カルト対893 (999)NTV実況
羽鳥慎一モーニングショー★2 (524)テレ朝実況
実況 ◆ テレビ朝日 46858 (902)テレ朝実況
実況 ◆ フジテレビ 82629 (152)フジ実況
連続テレビ小説 べっぴんさん★180 (939)NHK実況
白熱ライブ ビビット★1 (204)TBS実況
はやドキ!& あさチャン!月曜日★2 (379)TBS実況
このスレッドが人気です(ニュース系)
かばんから狆っ恥ずかしい瓠崑膺佑里もちゃ」 警察の所持品検査は「プライバシー侵害」と驚きの賠償命令…現場は震撼 (559)ニュー速+
【芸能】「出家します」清水富美加が電撃引退!『幸福の科学』活動専念へ★21 (1000)音楽・芸能ニュース
【政治】“田舎臭い少女風” 稲田防衛相のファッションに悪評[週刊新潮] (394)ニュー速+
【デッドライジング】 もしゾンビが大量発生したらどこに逃げるのが正解? (41)ニュー速
【芸能】「出家します」清水富美加が電撃引退!『幸福の科学』活動専念へ★22 (110)音楽・芸能ニュース
【社会】岐阜・金津園のソープランド摘発、岐阜県警 売春防止法違反の疑い (67)ニュー速+
【芸能】「出家します」清水富美加が電撃引退!『幸福の科学』活動専念へ★20 (1000)音楽・芸能ニュース
【静岡】イスラム教徒の保護者、「ハラール対応」ではない学校給食に苦慮 ムスリムへの理解と柔軟な対応求める★29 (1000)ニュー速+
データベース板の人気スレ
Oracle 質問総合スレ12 (480)
DB設計を語るスレ 9 (940)
Oracle 質問総合スレ9 (986)
MySQL 総合 Part24 (1010)
SQL初心者質問スレ (257)
不正アクセス犯がいます、警察に通報してください! (153)
Microsoft SQL Server 総合スレ 11 (238)
SQL質疑応答スレ 17問目 (172)
SQL質疑応答スレ 15問目 (1013)
Oracle 質問総合スレ10 (1014)
不正アクセス犯がいます!警察に通報してください! (100)
MySQL 総合 Part25 (808)
PostgreSQL Part.11 (202)
[test] 書き込みテスト 専用スレッド [テスト] (341)
Oracleの30日間トライアル版について (157)
データベース技術を勉強したいのですが… (132)
Firebird関連スレ3 (669)
性別フィールドをSEXと定義するのやめて! (105)
MariaDB (142)
SQLite Part.10 (595)
だれかみずほ銀行のDBを直してやれよ (53)
【Java】H2 Database Engine【GCJ】 (205)
(^^)BTRIEVE(^^) (126)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
Amazon


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 正常取得 - 3件 - 取得完了