事前にtable1でキーワードに一致するものを見付けてそれを含むtable2の列を探せば良いと思うのですが、 SQL初心者なのでとっかかりが分かりません。 どういう命令でやるべきなのかヒントを教えて下さい。 0183NAME IS NULL2016/12/24(土) 04:29:21.61ID:??? ヒントをってことなんだけど、table2からA001のコードを持つ行を取得することはできるんだろうか 0184NAME IS NULL2016/12/24(土) 07:36:26.32ID:??? Like と In でできるだろうけど、遅そう。 0185NAME IS NULL2016/12/24(土) 09:08:19.15ID:???>>184 そのSQLを書いて頂けませんでしょうか? 0186NAME IS NULL2016/12/24(土) 09:22:17.32ID:??? ヒントじゃねーじゃん 0187NAME IS NULL2016/12/24(土) 10:30:13.30ID:??? わらた 0188NAME IS NULL2016/12/24(土) 11:03:45.73ID:??? 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です%'
多分↑で通るけど、もっといい模範解答求む 0189NAME IS NULL2016/12/24(土) 12:12:04.02ID:??? ヒント like in exists 0190NAME IS NULL2016/12/24(土) 13:00:19.00ID:???>>182 ヒント where 0191NAME IS NULL2016/12/24(土) 13:13:57.30ID:??? 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; 0192NAME IS NULL2016/12/24(土) 13:43:58.17ID:???>>191 さんの方法で出来ました。 >>188 さんの方法も試したのですが、うまく行きませんでした。 私のやり方が悪いのかもしれません。 皆さんありがとうございました。助かりました。 0193NAME IS NULL2016/12/24(土) 14:45:42.42ID:??? もう一つ教えて下さい。 >191さんの方式ですと出力が name, code になりますが name のみにして distinct したいのですが やり方が分かりません。 宜しくお願い致します。 0194NAME IS NULL2016/12/24(土) 15:01:12.39ID:???>>193 その通りやってますか? select文に指定している name しか表示しないはずですけど
先頭行に distinct 加えれば重複している name は消えます。 select distinct name from table2 t2, 0195NAME IS NULL2016/12/25(日) 01:34:13.09ID:G9kEUO4A csvからphpmyadminでインポートしてるんだけど途中で止まってしまう 7000行くらいのデータが3000ちょいで切れて、その後継ぎ足しても10行程でまた切れる あんまりsql関係ないけど原因わかる人いたら教えて ちなみにxampp 0196NAME IS NULL2016/12/25(日) 02:16:42.88ID:???>>194 勘違いでした。 select * ... としていました。 うまく行きました。 ちなみに>191のような selectの中に(select ... )があるのは何ていう方式なのでしょうか? ググルためのキーワードを教えて下さい。 0197NAME IS NULL2016/12/25(日) 02:22:28.53ID:??? えっ、データベースの板に来るくらいなら、いくらなんでもサブクエリという名前くらい知っとけよ 0198NAME IS NULL2016/12/25(日) 12:45:10.61ID:???>>197 ありがとうございました。 サブクエリ、初めて耳にしました。難しいです。 一時テーブル(#テーブル)と言うやつとは違うんですか? 0199NAME IS NULL2016/12/25(日) 13:04:03.09ID:??? 一応ここは初心者スレって名前ついているし ベテランから見たら知ってて当たり前と思う質問でも 優しく回答してやれよ 0200NAME IS NULL2016/12/25(日) 13:37:54.49ID:GwZs/74I>>195
php文字化けとかめんどくさいから .Netとかでそういうのやってる 0201NAME IS NULL2016/12/25(日) 23:40:17.47ID:G9kEUO4A 195だが エラー行から改めて入れて、エラー行から改めて入れて 何回かやったら全部入ったわ 原因はわからん なんやら文字コード的なエラーメッセージだった気がする 0202NAME IS NULL2016/12/26(月) 11:14:14.73ID:fjjmXLRbhttps://youtu.be/7EekMD3GGHQ
https://youtu.be/xHx5MbIGEoY0203NAME IS NULL2016/12/26(月) 17:20:52.17ID:5PC6tP3J DBに突っ込んだデータに対してちょっと込み入った操作をしたいとき、 例えば、「ORDER BY id ASC した状態で、前の行と比較して DATA の値が2以上離れてる行が3行以上続く」ケースを抜き出したいとき、 一般的に (個人的にでもいいです) どんなやり方が最も望ましいんでしょうか?
全行ガサッと取ってきてプログラム側でせこせこ判定していく以外思いつけなくて、これでいいのか不安です 0204NAME IS NULL2016/12/26(月) 18:47:08.33ID:???>>203 SQLや処理系ごとの拡張で頑張るとか ストアドで処理するとか
それだけではどの方法が最善かはわからん 0205NAME IS NULL2016/12/26(月) 18:52:31.92ID:???>>203 実現できる方法でやる。 結果が問題なければ そもそも何を不安に思う? それは何故よ? 0206NAME IS NULL2016/12/26(月) 19:34:01.38ID:???>>203 window関数 0207NAME IS NULL2016/12/26(月) 20:24:10.05ID:??? 日本終了
ーーーーーーーーーーーーーーーーー 22日からの大雪で航空機が相次いで欠航となった北海道の新千歳空港で、24日夜、100人あまりの中国人が抗議し激しく詰め寄る騒ぎがあった。 0208NAME IS NULL2016/12/26(月) 22:19:59.12ID:???>>203 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 ; 0209NAME IS NULL2016/12/26(月) 22:22:29.01ID:??? 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 ; 0210NAME IS NULL2017/01/02(月) 16:54:20.40ID:??? 教えて下さい。 カラムが 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 です。 0211NAME IS NULL2017/01/02(月) 17:15:10.65ID:??? >days:差分 2
このカラムの意味が分からない 0212NAME IS NULL2017/01/02(月) 20:22:33.09ID:??? 質問させていただきます。
でも>>211が言うようにdaysは演算で処理すべきだべ 0216NAME IS NULL2017/01/02(月) 21:45:28.71ID:???>>212 mysql と仮定して select dtime from t1 where date(dtime) not in (select date from t2); 0217NAME IS NULL2017/01/03(火) 09:50:33.91ID:???>>213,215 できました。ありがとうございました。
>>211 テーブル設計自体はすでにあったものでして… 0218NAME IS NULL2017/01/03(火) 10:39:07.59ID:???>>214 >>216 できました、ありがとうございました。 datetimeをdateに置き換える簡単な方法があったんですね。 0219NAME IS NULL2017/01/14(土) 10:16:41.35ID:??? phpmyadminでデータベースを作成しようと思ったのですがSQLタブのテキストエリアにコピペができません(右クリックしてもコピー、切り取り、貼り付けがでない) コピペをするのに設定などがあるのでしょうか? 0220NAME IS NULL2017/01/14(土) 10:36:37.05ID:NxfK13Qk 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'); 0221NAME IS NULL2017/01/14(土) 12:04:14.38ID:??? 外部結合クエリで ・A LEFT JOIN B ・B RIGHT JOIN A
これらは全く同じものではなく、結果が異なる場合があるので 外部結合は左のみ使うべしってどこかのサイトで見た記憶がある どなたかそのカラクリを知っていたら教えて 0222NAME IS NULL2017/01/14(土) 18:06:07.65ID:???>>221 俺の中ではそんな事ないから答えられない 0223名無しさん2017/01/14(土) 18:09:24.89ID:/fuRSrl8 無料誹謗中傷対策のブッダワークス http://www.buddha-works.net0224NAME IS NULL2017/01/14(土) 20:16:43.44ID:???>>221 見たサイトの運営者に聞け 0225NAME IS NULL2017/01/14(土) 21:05:14.36ID:???>>220
insertでするなら on duplicate key update 又は replaceでというのも
それぞれについて説明をちゃんと読んでから使ってね 0226NAME IS NULL2017/01/15(日) 22:54:38.21ID:???>>225 ありがとうございます! 確認して使ってみます 0227NAME IS NULL2017/01/16(月) 18:03:02.75ID:tiD/G6HXhttps://youtu.be/quIHgwuF6r40228NAME IS NULL2017/01/19(木) 06:50:34.21ID:??? DISTINCT がキーボードで打ちづらいです 0229NAME IS NULL2017/01/19(木) 12:41:28.22ID:??? そんなあなたにオススメDvorak配列キーボード 0230NAME IS NULL2017/01/19(木) 18:01:27.09ID:??? ユーザー登録ありのシステムを組むにあたってユーザーが2種類いる場合 テーブルは分けるべきでしょうか?