X



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

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

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

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

前スレ:
SQL質疑応答スレ 17問目
https://mevius.5ch.net/test/read.cgi/db/1468157341/
0367NAME IS NULL
2018/06/10(日) 21:58:41.22ID:???
>>366
identity とかでいいだろ
てか insert と同じだろ
0368NAME IS NULL
2018/06/14(木) 13:13:32.45ID:???
自動採番のあるテーブルにインサートした場合、その番号を知るには別途selectするものですか?
0369NAME IS NULL
2018/06/14(木) 16:10:12.12ID:???
そもそも自動採番ってSQL標準じゃない気がするし
DBMSによるんじゃね
0370NAME IS NULL
2018/06/14(木) 18:37:24.82ID:???
>>368
普通は採番された番号を取得する機能が提供されてる
でないと単純なログみたいにその番号以外の部分には重複を許す列しかないと検索しようがないから
0371NAME IS NULL
2018/06/15(金) 10:36:36.02ID:???
>>368 です。
自分の使うデータベースで探したらありました。
自動採番ってあるの普通だと思ってたので勉強になりました。
0372NAME IS NULL
2018/06/17(日) 00:34:30.36ID:DF4YrmFv
こういう常時、一人しか使っていないと思っているひとは、なんなんだろうな。
0373NAME IS NULL
2018/06/17(日) 00:58:11.39ID:YrBEhWbQ
こういう常時、で読点打つキチガイはバカなんだろ、うな。
0374NAME IS NULL
2018/06/17(日) 11:52:51.97ID:???
バカだからイミフなんですね
0375NAME IS NULL
2018/06/19(火) 19:16:06.54ID:???
n+1問題ってなんやねん

パフォーマンス低下したら何がいけないの?
0376NAME IS NULL
2018/06/19(火) 19:17:03.49ID:???
何回もデータ分だけ引くの何がいけないの?
ハードが優秀なら別にいいんじゃないないの?
0377NAME IS NULL
2018/06/19(火) 23:22:26.54ID:NrZ3i0Js
それでええんやで
0378NAME IS NULL
2018/06/24(日) 19:08:35.72ID:???
助けてください。自分の力量だと解決できず

データ
日付,オーダ番号,個人名.エラーA,エラーB,エラーC
0601,00001,タナカ,エラーA発生,,
0601,00002,イトウ,,エラーB発生,
0601,00003,サトウ,,,エラーC発生
0602,00004,タナカ,エラーA発生,,
0602,00005,イトウ,エラーA発生,,
0602,00006,スズキ,エラーA発生,,

このとき、個人別にエラー回数の内訳を出したいのです。
個人名, エラー1回目, エラー2回目, エラー3回目,…
タナカ,エラーA,エラーA,,
イトウ,エラーB,エラーA,,
サトウ,エラーC,,
スズキ,エラーA,,

使用DBはMYSQLですがストアドは使えないという制約があり
エラー回数は動的に延ばせればという要望がありますが、5回で止めてもOKです。

よろしくお願いいたします。
0379NAME IS NULL
2018/06/24(日) 21:18:41.09ID:???
select
個人名,
max(case カラム番号 when 1 then エラー end) as エラー1回目,
max(case カラム番号 when 2 then エラー end) as エラー2回目,
max(case カラム番号 when 3 then エラー end) as エラー3回目,
max(case カラム番号 when 4 then エラー end) as エラー4回目,
max(case カラム番号 when 5 then エラー end) as エラー5回目
from (
select
個人名,
case
when not エラーA is null then 'エラーA'
when not エラーB is null then 'エラーB'
when not エラーC is null then 'エラーC'
end as エラー
row_number() over (
partition by 個人名
order by 日付 asc, オーダ番号 asc) as カラム番号
from エラー履歴
)
group by 個人名
0380NAME IS NULL
2018/06/25(月) 19:53:25.00ID:???
よろしくお願いします。
0381NAME IS NULL
2018/06/25(月) 21:07:08.21ID:???
こちらこそよろしくお願いします。
0382NAME IS NULL
2018/06/25(月) 22:01:22.79ID:???
>>379
ありがとうございます!できました!!!
どうしてこんなクエリが思いつくんですか。すげぇですね!
0383NAME IS NULL
2018/06/26(火) 16:30:55.58ID:???
質問です。
tableA
id

tableB
id, A.id

tableC
B.id, col1

のような、A-B-Cと、親-子-孫の関係で、子孫になるほど関連する行が1対多数になっていくテーブルで、

Bの1レコードにたいして、Aの情報と、Cのcol1がnullでない数の情報が欲しいのですが、
LEFT OUTER JOINでどう書けばいいでしょうか?

SELECT t1.x, t2.x, t3.nullでない数
FROM B t1
LEFT OUTER JOIN A t2
ON t1.A.id = t2.id
LEFT OUTER JOIN
(SELECT COUNT(col1) AS nullでない数 FROM C WHERE Bid = t1.id) t3
ON t3.B.id = t1.id

みたいな事がやりたいのですが、クエリはエラーになってしまいます。
0384383
2018/06/26(火) 16:58:48.22ID:???
FROM C WHERE Bid = t1.id) t3
の部分で、「t1はここから参照できない」みたいなエラーです。
0385383
2018/06/26(火) 17:50:23.15ID:???
自己解決しました
(SELECT B.id, COUNT(col1) AS nullでない数 FROM C GROUP BY B.id) t3
として、WHERE句を取ればいいだけでした

無駄な検索時間は増えてしまうと思いますが・・・
0386NAME IS NULL
2018/06/27(水) 01:56:23.14ID:???
>>385
カラム名を変えさせてもらった
tableB id, A_id
tableC B_id, col

select tableA.id, tableB.id,
count(C.col) as count
from tableA,tableB,
(select
B_id,
(case
when col1 is NULL then NULL
else 1 end) as col
from tableC) as C
where
tableA.id=tableB.A_id and
tableB.id=C.B_id and
C.c is not NULL
group by A_id,C.col;
0387NAME IS NULL
2018/06/27(水) 02:05:38.77ID:???
訂正 最後から2行目

× C.c is not NULL
○ C.col is not NULL
0388NAME IS NULL
2018/06/27(水) 08:42:50.79ID:???
>>383
BCを先にjoinしてカウント。その結果とAをjoin
0389NAME IS NULL
2018/06/27(水) 11:12:53.09ID:???
お願いします。
質問文を入力すると403 Forbiddenとなるのですが、なぜでしょう?
こういう文章は入力できるのに・・・
0390NAME IS NULL
2018/06/27(水) 11:16:55.56ID:???
再度質問を投稿してみます。

CREATE TABLE TB(
MM VARCHAR(81) DEFAULT ’NOTHING’ NOT NULL)

なのですが、DEFAULTで'NOTHING'が設定されていてNULLにならないと思うのですが
文末にNOT NULL制御を掛けているのはなぜなのでしょうか?
0391NAME IS NULL
2018/06/27(水) 12:49:39.15ID:???
>>390
> NULLにならないと思うのですが
NULLは後からでも設定できるだろ
0392NAME IS NULL
2018/06/28(木) 05:17:45.28ID:???
>>390
insertでカラムにnull指定すれば出来るからでは
0393NAME IS NULL
2018/06/28(木) 09:25:57.73ID:???
>>391
>>392
ありがとうございました!言われると恥ずかしいくらい簡単なことだったのですね。先生方、ありがとうございました。
0394NAME IS NULL
2018/07/02(月) 08:04:38.26ID:NPOvlBFE
1時間に1回だけ引けるガチャを実装したいんだけどどうすればいいですか?
一応、ユーザがいつガチャを引いたかを記録するテーブルを作って(不正が分かるように必須)
そこから検索かけて該当するのがあれば残り時間を返すみたいな実装を考えてます

・MariaDB 10
・user_id, time
・残り時間(引ける時はいらない)
0396NAME IS NULL
2018/07/14(土) 15:21:18.46ID:wB+JUIy4
条件1〜条件10のうち9個以上の条件を満たすものを抜き出したい。

select * from table1 where 条件;

の条件のところに
(条件1 AND 条件2 AND ...AND 条件10)
AND
(条件1 AND 条件2 AND ... AND 条件9 AND (NOT 条件10))
AND
(条件1 AND 条件2 AND ... AND 条件8 AND (NOT条件9) AND 条件10)
AND
...
AND
((NOT 条件1) AND 条件2 AND ... AND 条件10)

と愚直に11通り書く他に、スマートに書く方法無いの?
0397NAME IS NULL
2018/07/14(土) 15:48:00.68ID:???
where case when 条件1 then 1 else 0 end
   + case when 条件2 then 1 else 0 end
   ...
   + case when 条件10 then 1 else 0 end
   >= 9
0398NAME IS NULL
2018/07/14(土) 16:33:57.42ID:???
なるほど、CASE式を使うのか。 サンQ

ってか質問のころ、11通りを結ぶのはANDじゃなくてORの間違いだったな。
0399NAME IS NULL
2018/07/16(月) 18:50:59.75ID:XzzcYhc4
>>398
複数のselect文を書いてunion allの方が意図がわかりやすいうえに、条件を変えるときも変更時のリスクも低い。
0400NAME IS NULL
2018/07/16(月) 19:13:40.21ID:???
>>399
ちょっと具体的に書いてみ

まともな頭持ってたら書いてる途中で顔真っ赤になると思うが…
0401NAME IS NULL
2018/07/16(月) 19:16:01.66ID:???
>>399
条件ちゃんと読んでないのかもしれんが、複数条件つなぐのはorだぞ
ちょっとunionで書いてみてくれよ
0402NAME IS NULL
2018/07/16(月) 20:50:23.35ID:???
単純に、orでつないでる式を一つにしたsql文をunionすれば良いと思うのだが
0403NAME IS NULL
2018/07/16(月) 21:32:24.07ID:???
>>402
それのどこが「スマート」なんだ?
0404NAME IS NULL
2018/07/16(月) 21:39:54.23ID:???
質問者自身にしろ、CASE使った回答にしろ、
SELECT条件で9個以上の判定をしていますが、
UNION使って列挙した場合、それぞれのSELECTが
独立してテーブルをスキャンする事になるので
仮に上手く書けたとしても効率が悪いって気がします
0405NAME IS NULL
2018/07/16(月) 22:51:06.23ID:5Oge9TUh
>>404
それは素人の考え方です。先の例ではSQLの見た目はシンプルそうに見えますが、実際の処理コストは高いと思われます。
0406NAME IS NULL
2018/07/16(月) 22:53:57.62ID:5Oge9TUh
それなりにデータベースに詳しくてもいまだにSQLはこう書くと内部でこう処理されると主張する方がいますが、それはリレーショナルデータベースの根本から否定する主張です。SQLは処理方法を指定しない非構造化言語です。
0407NAME IS NULL
2018/07/16(月) 23:01:38.78ID:5Oge9TUh
>>404
リレーショナルデータベースはそんなにお馬鹿ではありません。SQLの発行回数を問題視したり、SELECT句が難度も出てきたり、見た目だけでコストが高い、性能が悪いと言われて仕事でもかなりの支障をきたしますのでそういった発言は控えてください。

まずは実行計画と実際にどのように処理されたかSQLをトレースして己の知識を高めてから偉そうなことを言ってください。
0408NAME IS NULL
2018/07/16(月) 23:03:33.07ID:???
後の例を提示してもらった上で性能なり効率なりを評価してみましょう
0409NAME IS NULL
2018/07/16(月) 23:07:17.64ID:5Oge9TUh
>>408
すぐに回答を欲しがるいつものあなたですが、ここは教育スレッドではありません。

ちなみにさきほどの非構造化とは非構造化データのことではなく、構造化定義のない言語という意味です。
0410NAME IS NULL
2018/07/16(月) 23:12:29.73ID:???
教えてもらうスレではなく、質疑応答スレです。

>402 名前:NAME IS NULL[sage] 投稿日:2018/07/16(月) 20:50:23.35 ID:???
>単純に、orでつないでる式を一つにしたsql文をunionすれば良いと思うのだが

この人がSQL書いて提示するのを待っているところですが
0411NAME IS NULL
2018/07/16(月) 23:18:34.32ID:5Oge9TUh
>>397 の良くない点を挙げましょう。

SELECTが一度しか出てきませんが、WHERE句の条件を見れば、普通のプログラマはループのネストとわかるはずです。

一番の問題はそこではなく、仕様の変更に弱く保守性が低いところです。

複数のSELECT文のUNION ALLは結果セットを最後に単純に繋ぐだけで、それぞれのSELECT文が独立していますので仕様の変更が全体に影響しません。

ただし本当のところはオプティマイザの判断ですので、必ずこうなるわけではありません。
0412NAME IS NULL
2018/07/16(月) 23:27:47.58ID:???
評価は後の例が出てきてからで良いでしょう?
0413NAME IS NULL
2018/07/16(月) 23:29:52.01ID:5Oge9TUh
>>410
条件が10個もあり、そのうちの9個の条件が真の場合のSELECT文のパターンは膨大だと思うでしょう。

SELCT * FROM Aテーブル WHERE 条件パターン1
UNION ALL
SELCT * FROM Aテーブル WHERE 条件パターン2
UNION ALL




とかなり並べないといけないと思うと思います。

ただ冷静に考えてください。10個条件があり、すべての条件を満たすSELECTはひとつです。10個の条件のうち9個を満たすSELECT文は10個、10種類です。

たった11パターンのSELECT文のUNION ALLです。簡単でしたね。
0414NAME IS NULL
2018/07/16(月) 23:38:47.97ID:5Oge9TUh
このスレでは集合演算子がないことにしている回答ばかりです。おそらく集合演算子が使いこなせないのでしょう。

もっとシンプルに考えてください。プログラマとは思えません。

SQLを組み立てるときに頭の中でWHERE句内でどうにかしなければいけないと思い込んでいませんか?

常にSELECT文がひとつでSELECT句内でSELECT文を使う回答やWHERE句の服問い合わせでどうにかしようとする回答も多いですね。

特定の人物が回答しているのがよくわかります。その場しのぎの小手先のSQLほど迷惑なものはありません。
0415NAME IS NULL
2018/07/16(月) 23:38:56.00ID:???
条件パターンを例に従って具体的に書いてみてくれませんか?
そうすれば実際に性能評価ができそうですし
0416NAME IS NULL
2018/07/16(月) 23:43:50.42ID:5Oge9TUh
>>415
なぜ11種類の条件違いのWHERE句違いのSELECT文が理解できないのですか?

SELECTの結果を足し算、くっつければすればいい話ですので、あなたがUNION ALLを理解できないだけです。

SQLの入門書の絵でも見て勉強してください。
0417NAME IS NULL
2018/07/16(月) 23:45:50.92ID:???
この人NGにした方が良さそうですね?
0418NAME IS NULL
2018/07/16(月) 23:52:58.66ID:5Oge9TUh
UNION ALLでなくてもSELECTがひとつでないといけないルールがあるなら、WHERE句に10個の条件がすべて真、9個の条件がすべて真の条件をOR条件でつないでもかまいません。
0419NAME IS NULL
2018/07/16(月) 23:58:36.32ID:5Oge9TUh
条件1〜条件10のうち9個以上の条件を満たすものを抜き出したい。

select * from table1 where 条件;

の条件のところに
(条件1 AND 条件2 AND ...AND 条件10)
AND
(条件1 AND 条件2 AND ... AND 条件9 AND (NOT 条件10))
AND
(条件1 AND 条件2 AND ... AND 条件8 AND (NOT条件9) AND 条件10)
AND
...
AND
((NOT 条件1) AND 条件2 AND ... AND 条件10)

と愚直に11通り書く他に、スマートに書く方法無いの?


↑は本人も訂正していますがORの間違いでANDと書いています。さらに本人は気づいていなかったようですが「 NOT 条件 」部分はいりません。

質問者はスマートではないと言っていますが、本人がスマートではないと見た目だけで思っているだけで、まったく悪くはありません。
0420NAME IS NULL
2018/07/17(火) 05:22:06.92ID:???
>>413
おれなら11個も同一テーブルからのunion allとか書いてたらアホかと思うけどな
whereで11個or条件書く方がマシだわ
どっちにしても、9個以上が8個以上とか7個以上とかになったらどうするんだろうね

ああ、たんに最近union覚えて使いたいだけか

理解できてないのはお前のunionに対する実行効率だよ

まあ>>397がループのネストとか俺には意味不明だから、俺を遙かに超越した理解の持ち主なのかもしれんが
0421NAME IS NULL
2018/07/17(火) 06:35:01.38ID:???
環境はそれぞれだったら、いろんな方法を試したらいいんじゃない?
で、目的に一番合うもの選べば。
0422NAME IS NULL
2018/07/17(火) 07:11:11.28ID:???
効率云々の前にunion allとかにしたら重複行の扱いで結果異なるし
>>417が正解かと
0423NAME IS NULL
2018/07/17(火) 11:41:13.48ID:???
まあちゃんとnot条件書けばいちおうunionでもunion allでも同じになるんじゃね
unknownになるような条件書かなきゃな
0424NAME IS NULL
2018/07/17(火) 19:05:25.28ID:???
>403
どっちがスマートかと言えば、unionで繋げた方が"sql文"としてはスマートかな
0425NAME IS NULL
2018/07/17(火) 20:31:21.01ID:???
現実社会じゃクイズ解いてるわけじゃないんだから、アプリ側でやっちゃうだけ
0426NAME IS NULL
2018/07/17(火) 20:40:16.91ID:???
>>425
この例で
アプリ側でどんなクエリ発行してどんなロジックでチェックするのか教えてくれ
0427NAME IS NULL
2018/07/17(火) 21:16:08.13ID:???
>>424
だからSQL書いてみろって
書いてる間に顔真っ赤になるだろ w
0428NAME IS NULL
2018/07/17(火) 21:20:42.11ID:???
お前は読めるのか?
0429NAME IS NULL
2018/07/17(火) 22:10:19.21ID:???
unionおじさんの次の一手は誰も言ってない要件を持ち出す、かな
0430NAME IS NULL
2018/07/17(火) 22:47:07.54ID:adSOPTjX
UNIONとUNION ALLはまったく別物だ。
0431NAME IS NULL
2018/07/17(火) 22:50:39.33ID:adSOPTjX
>>422
だから質問者のWHERE句での条件でいいのに。
なんでSQLを直すことになったらすぐにWHERE句全体が崩壊する方法を勧めるひとがいるの?
0432NAME IS NULL
2018/07/17(火) 22:57:06.79ID:adSOPTjX
>>422
確かにUNION ALLでは同じレコードが返ってくることには気づかなかった。
0433NAME IS NULL
2018/07/17(火) 23:05:43.48ID:adSOPTjX
質問者が静的SQLにこだわっている理由も気になる。10個の条件のうち9個が真という条件が激しく変化するのなら、動的SQLでSELECT文を組み立てた方が、てっとり早い。

こういう条件の場合は動的にSQLを組み立てるのが普通で、静的SQLにこだわる理由がみつからない。

こういう検索機能を動的SQLではなく、静的SQLにしようとすると、例の仕様変更に耐えられないSQLを使用しなくてはいけないなる。
0434NAME IS NULL
2018/07/17(火) 23:26:06.21ID:???
>>433
静的/動的は関係ないでしょ?
まあ動的に生成するなら>>396でもそんなに面倒じゃないけど>>397でなんの問題もないしな
ちな>>399は論外
0435NAME IS NULL
2018/07/17(火) 23:31:51.56ID:???
素朴な疑問だけど、なぜみんなUNIONを嫌うの?
0436NAME IS NULL
2018/07/18(水) 00:03:15.34ID:???
適切な使い方なら良いんだが、これは違うだろう
0437NAME IS NULL
2018/07/18(水) 02:54:15.10ID:???
この例で最悪でもテーブルスキャン1回で済ます実行計画吐くならまあunion allでもいいんじゃね
結果行数が多くなるならunionはダメだろうけど
0438NAME IS NULL
2018/07/18(水) 08:36:07.89ID:???
誰か最初のUNION(ALL)の手前までででいいからSQL書いてくれ
0439NAME IS NULL
2018/07/18(水) 12:04:56.31ID:???
言うに事欠いて1回のスキャンで済むunionとか…
0440NAME IS NULL
2018/07/19(木) 15:29:12.57ID:ql5n9nVD
【3.11津波は自民由来!? 安倍逮捕秒読みか!?】 ロシア国防省『日本は地震を偽装した核実験を止めよ』
http://rosie.5ch.net/test/read.cgi/liveplus/1531966541/l50



2018年、テレビが隠している大ニュース!
0441NAME IS NULL
2018/07/20(金) 00:47:16.08ID:qGWP8ju3
ここのキチガイは実行計画もみたことがないからな。文字数が少ないSQLがスマートと言い張る。
なんでプログラマなのに
0443NAME IS NULL
2018/07/20(金) 21:39:10.73ID:???
実行計画という用語を最近覚えたノロマ w
0444NAME IS NULL
2018/07/20(金) 23:08:59.22ID:GJRr/f3G
おまえの事やんけ
0445NAME IS NULL
2018/07/20(金) 23:40:11.94ID:???
なにか気に触ったのか? w
0446NAME IS NULL
2018/07/21(土) 07:43:39.15ID:5x2HyI6i
おまえ何時も他人の顔色うかがってばかりやな
0447NAME IS NULL
2018/07/21(土) 08:27:53.48ID:???
ノロマは何をやっても駄目だな w
0448NAME IS NULL
2018/07/21(土) 12:27:57.38ID:5x2HyI6i
おまえの事やんけ
0449NAME IS NULL
2018/07/21(土) 13:27:35.31ID:???
実行計画とか考慮したら、unionはないわw
0451NAME IS NULL
2018/07/21(土) 18:42:01.35ID:OaX/dGdR
>>449
実行計画がなんなのか分かってますか?

多少の知ったかぶりはかまいませんが、少しは謙虚にわからないことはわからないと言うようにしましょう。
0452NAME IS NULL
2018/07/21(土) 18:46:09.10ID:???
その実行計画をやってみたいから、早くUnion使ったSQLをここに晒してくれ
0453NAME IS NULL
2018/07/21(土) 18:48:49.51ID:???
unionの1回目のselectで、キャッシュに乗る
0454NAME IS NULL
2018/07/21(土) 18:50:04.62ID:???
それぞれのselectが異なるのに?
0455NAME IS NULL
2018/07/21(土) 18:55:37.55ID:???
バッファキャッシュ
0456NAME IS NULL
2018/07/21(土) 19:22:15.63ID:???
キャッシュに乗るかどうかは実行計画とは直接は無関係だがな
キャッシュにのったからって不要なテーブルスキャンが許容できるわけではない
0457NAME IS NULL
2018/07/21(土) 20:00:11.00ID:???
でっかいテーブルだとキャッシュに収まるのは無理
0458NAME IS NULL
2018/07/21(土) 20:17:41.08ID:???
条件によってはインデックスしかアクセスしない可能性もあるしな
0459NAME IS NULL
2018/07/21(土) 21:13:40.08ID:???
不要なテーブルスキャン
0460NAME IS NULL
2018/07/21(土) 21:14:00.83ID:HTGK0eq2
>>451はアホやけどおまえらはその足下にも及ばんアホなんやで?
知らんかったやろ?
0461NAME IS NULL
2018/07/22(日) 02:39:53.39ID:ODcS1lTE
>>460
実行計画ではなくコストだったと間違いを認めなさい。
0462NAME IS NULL
2018/07/22(日) 11:27:50.93ID:zTS56Hn0
>>461
おまえが一番アホやなw
0463NAME IS NULL
2018/07/22(日) 19:38:32.24ID:???
条件1〜条件10のうち9個以上の条件を満たすものを抜き出したい。

テーブルは以下の内容とし、レコード件数は1万件、
cond*にはランダムに1〜100までの数値を設定し、
抽出条件は各カラム値が50を超えるものとする

create table vote (
id int primary key auto_increment,
cond01 int,
cond02 int,
cond03 int,
cond04 int,
cond05 int,
cond06 int,
cond07 int,
cond08 int,
cond09 int,
cond10 int);
0465NAME IS NULL
2018/07/22(日) 20:05:59.94ID:???
unionにだけorder byあるとか
やるならちゃんとやって

まあunionはたいがいの場合でソートするんだが
unionの押しの人はunion allって言ってなかったっけ?

どうせならインデックスの有無も
0466NAME IS NULL
2018/07/22(日) 20:43:15.80ID:???
case whenはそのままid順になるけど、unionはならなかった
union all使えば重複の除外が発生するし、変わらないんじゃない?
index付けてもunion内のsql実行に影響するだけで、
マージする性能には多分影響しない

続きは各自で
■ このスレッドは過去ログ倉庫に格納されています

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