回答数
気になる
-
phpとmysqlでDBにある前日と1ヶ月前の差分を計算したい
MySQLのDBにmemberという下記テーブルがあります。 このテーブルには毎日同じ時刻にメンバーのfollower数が蓄積されていきます。 id, member_id, follower_count, date 1, 101, 55, 2019-01-24 19:12:01 2, 102, 123, 2019-01-24 19:12:01 3, 103, 10, 2019-01-24 19:12:01 4, 104, 5, 2019-01-24 19:12:01 5, 105, 88, 2019-01-24 19:12:01 6, 101, 70, 2019-01-25 19:12:01 7, 102, 80, 2019-01-25 19:12:01 8, 103, 50, 2019-01-25 19:12:01 9, 104, 150, 2019-01-25 19:12:01 10, 105, 55, 2019-01-25 19:12:01 やりたいことはphpとmysqlを使って 1. 日間のfollower数ランキング(follower_count数の差分で1位からランキング化) 2. 月間のfollower数ランキング(follower_count数の差分で1位からランキング化) になります。 具体的にはphpで下記のように表示させたいと思っています。 ■2019年1月24日~25日のメンバーfolloer数ランキング メンバー folloer増減数 1位 104 +145 2位 103 +40 3位 101 +15 4位 105 -33 5位 102 -43 ■2019年1月~2月のメンバーfolloer数ランキング メンバー folloer増減数 1位 104 +xxx 2位 103 +xxx 3位 101 +xxx 4位 105 -xxx 5位 102 -xxx どのようなsqlを書いたら(あるいはphp側で書いたら)上記のランキングを表示することができますか?
質問日時: 2019/01/30 23:28 質問者: sasatoto59
ベストアンサー
3
0
-
AUTO_INCREMENTの抜け番
PHPにて、MySQLにデータをインサートする処理があります。(WEBシステムです) インサートするテーブルにはAUTO_INCREMENTを使ったIDの ようなフィールドがあります。 このテーブルに対して、DELETEをする処理はプログラムには ありません。(UPDATEはあります) AUTO_INCREMENTのIDを調べてみると、2~3万件に1件くらい 抜け番があります。プログラムにDELETE処理がないので、SQL手打ち でないと、理論上は抜け番は存在し得ないと考えています。 この抜け番が存在する可能性を教えて頂ければと存じます。
質問日時: 2019/01/21 18:35 質問者: coogon21
ベストアンサー
2
0
-
LIKE演算子の%について教えてください。
初心者です。 Phpmyadminからデータの検索を行っているのですが、meta_valueなどの検索項目を入力する際に、横にLIKEやLIKE%゙…%などの検索の際の条件?を設定する項目があります。 そもそもLIKEとは何でしょうか?また、LIKE%゙…%このパーセントで挟むパターンは何を意味しているのでしょうか? LIKEの他にもNOT LIKEや!=など、いろいろありますが、これらの意味が分かるサイトがあれば教えてください。 宜しくお願いします。
質問日時: 2019/01/10 15:00 質問者: oneday77
解決済
2
0
-
フォームの年月日入力制限
予約受付のサイトで、希望「月日入力」フォームが作成されてます。 この場合、希望入力月日を必ず当日以降一定期間(10日)後からに制限したいのです。 HTML記述等どのようにしたら可能でしょうか。ご指導ください。
質問日時: 2019/01/05 16:42 質問者: sigeaki
解決済
1
0
-
ウィルスに感染したんでしょうか?
ファインダーから新規フォルダを作成すると空のはずのフォルダの中にパソコン内のすべてのデータが入った状態で作成されてしまいます。何度やっても空のフォルダが作れず困っています。2016年のmacbookproを使っています。どなたか教えてくださいm(_ _)mよろしくお願いします。
質問日時: 2019/01/01 22:19 質問者: はんすう
解決済
3
0
-
ベストアンサー
3
0
-
ベストアンサー
2
0
-
mysqlにドメインで接続できない。
外部のmysqlサーバーにドメインでアクセスしたところ、アクセスできませんでした。 ドメインの部分をipアドレスに変更したら接続できました。 エラーを確認したところ unknown mysql server host (2) と表示されておりますが、どこが問題なのか分かりません。 どなたかお力をお貸し願えないでしょうか。 よろしくお願いします。
質問日時: 2018/12/20 13:32 質問者: hana43
解決済
1
0
-
SQLの複数条件の検索方法について教えてください。
登録されているSQLデータの修正方法について2つ教えて頂けないでしょうか? ■質問1:先頭または末尾に指定名が無いデータを対象に一括置換する方法 例えば、company というテーブル内にあるデータで、○○○ という会社名が登録済み。 指定で、先頭または末尾に 「株式会社」という名称が無い場合には付与して「○○○株式会社」と修正登録するにはどういった指定を行えば良いでしょうか? ■質問2:2つまたは複数のテーブルを対象に条件を指定して、検索及び一括置換する方法 foodというテーブルに「ハンバーガー」が入っていて、かつ、setというテーブルに「ポテト」以外のデータが入っている場合には、set内の全てのデータを「ポテト」に変更したいです。 うまく説明ができないのですが、伝わりますでしょうか…? foodにハンバーガーが入っているデータで、setに「ポテト」が登録されていない場合、全てポテトに書き換えるということです。 お詳しい方いらっしゃいましたら、アドバイスお願いいたします。mm
質問日時: 2018/12/17 09:03 質問者: yuyukina
解決済
1
0
-
MYSQLで日本語が入力できない
環境 ubuntuServer18.04LTS mysql ver14.14 Distrib5.7.24 日本語環境の確認(status) Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 状況 sshクライアントからテーブルカラムに日本語データ(データ型varchar)を 入力しようとしてもはじかれてしまう。(insert文) MYSQLクライアント heidiSQLおよびMySQLWorkbenchからも入力できない。 試したこと データベースやテーブルを作成するときに文字コードを設定してみる。 <例> mysql> CREATE DATABASE SAMPLE CHARACTER SET cp932; sshクライアントからのコマンド操作では、相変わらずはじかれる。 しかし、MYSQLクライアント heidiSQLおよびMySQLWorkbenchからは入力可能となる。 入力した結果をsshクライアントからコマンドで確認すると、文字化けなどしないで表示される。 つまり、sshクライアントのmysqlコマンドだけからの日本語入力ができない状態です。 ちなみに、設定ファイルを変えて、以下にしても同様でした。 Server characterset: cp932 Db characterset: cp932 Client characterset: utf8 Conn. characterset: utf8 どこの設定がおかしいのでしょうか。よろしくお願いします。
質問日時: 2018/12/13 14:45 質問者: つぼだい
ベストアンサー
3
0
-
ロードバランサからmysqlの生存状況を確認する方法(SQLなど)
ロードバランサ(LB)で、mysqlの生存状況を確認するコマンド(SQLなど)が知りたいです。ご存じの方、ぜひご教示頂ければ、、、と思ってます。postgresでは、「SELECT pg_is_in_recovery()」というSQLで確認できるようですが、Mysql用の似たSQLってありますか? または、MySQLが正常に動作しているかどうかを確認するコマンド(or SQL)ってご存知でしょうか
質問日時: 2018/11/19 11:41 質問者: nuridayo
解決済
1
0
-
【MySQL】jsonカラムに値を追加する方法
mysqlにてjson型のカラムに保存されている、 ["1", "2"]や["1", "4", "5"]などの最後に"6"を追加させて、 ["1", "2", "6"]や["1", "4", "5", "6"]となるようにしたいのですが、どのようなクエリを記述すれば対応可能でしょうか。 JSON_SETなど試してみたのですが、期待した結果が得られなかったので、ご存知の方がいればご教授頂けると幸いです。 質問の内容に不備などあった場合は申し訳ありません。 よろしくお願いします。
質問日時: 2018/11/16 11:41 質問者: non05410
ベストアンサー
1
0
-
mysqlclusterは無料?ですか
MSYQLにクラスター機能の実装を考えています。 調べた限り、mysqlには、mysqlclusterなるものがあり、これを利用しようと考えましたが、 有償のようです。 ですが、ある知人の話では無料との話も聞いています。 Mysqlの会社に対してメールで有料か無料かの問い合わせをしても、なぜか返答がきませんし、、、、 そこで、ご存じの方がいらっしゃっいましたら、MYSQL CLUSTERは有料か無料かを教えて下さい! お願いします。。。 また、併せて可能ならば証拠となるWebサイトへのURLも併記してもらえると、本当にありがたいです。
質問日時: 2018/11/01 20:16 質問者: nuridayo
ベストアンサー
1
0
-
デジカメのメモリカードの中に入ってた画像って間違えて消去してしまったのですご復元できますか?
デジカメのメモリカードの中に入ってた画像って間違えて消去してしまったのですご復元できますか?
質問日時: 2018/10/25 20:44 質問者: ブリバラ
解決済
3
0
-
インデックスを削除したいのですがインデックス名が文字化けしていて通常の方法では削除できません
誤ってadd index構文を2回連続で実行してしまい、余計なインデックスを作成してしまいました。 しかもインデックス名を指定しなかったためか、2個目のインデックス名が文字化けしてしまい、通常のdrop index構文でインデックス名を指定して削除するやり方では削除できなくなってしまいました。 この文字化けしたインデックスをどうにか削除したいのですが、妙案はございませんでしょうか。 add index構文でインデックス名を指定しなかった場合にはカラム名と同じ名前になるようですが、今回は2回連続でadd index構文を実行してしまい、すでに同名のインデックスが存在していたため、2個目のインデックスには自動的に別の名前がつけられて、このときに日本語が文字化けしてしまったみたいです。 文字化けしたインデックス名はブラウザーとコマンド行でそれぞれ次のように表示されています。 ブラウザー: レース番��_2 コマンド行: レース番?_2 カラム名は「レース番号」です。
質問日時: 2018/10/20 22:05 質問者: zyousuke
ベストアンサー
2
0
-
データベースの属性指定
応用情報試験の勉強をしていますが SELECT COUNT(*)AS 判定結果 FROM Webユーザ WHERE ユーザID=:ユーザID AND パスワードハッシュ値=HASH(:パスワード) というSQL分があるのですが、この場合 1、なぜWebユーザ.ユーザID,Webユーザ.パスワードハッシュ値と書かないのでしょうか SELECT * FROM の時は書かなくていいのでしょうか 2、条件を記述する際逆に書いていてもいいのでしょうか 例えば WHERE :ユーザID=ユーザID AND HASH(:パスワード)=パスワードハッシュ値 のような感じです。 Webユーザエンティティは顧客番号を主キーとしておりユーザID,パスワードハッシュ値の属性を持っています
質問日時: 2018/10/17 02:54 質問者: yayakusimann
ベストアンサー
2
0
-
firebird,SQLトレーナーの使い方
やさしいSQL入門という本を購入し、付属のCDに入っているSQLトレーナーというアプリケーションを使いたいのですが、エラーがでて困っています。 本自体がWindows7の頃に出たものなので、firebirdは公式サイトから最新版をダウンロードしインストールしました。SQLトレーナーは付属のCDからインストールしました。 ここでSQLトレーナーを起動したのですが、 【unsupported on-disk structure for file C:¥USERS¥名前¥DOCUMENTS¥CUTT¥SQLTRAINERDB;found 11.0 support 12.2.】 このようなエラーがでてきました。このメッセージ後にアプリが表示されるのですが、どうやらテーブルのデータが引き出せていないようです。 エラー文をみるに、SQLTRAINERDB.FDBというファイルが読み込めていないということなんだと思います。 この場合のSQLトレーナーを使う方法を知っている方いましたら教えていただけると助かります。 自前のPCはASUSのノートPCで、Windows10(64) よろしくおねがいしますm(_ _)m
質問日時: 2018/10/17 02:19 質問者: takemaru-z
解決済
1
0
-
合計点順にソートかつ同一人の行が連続するようにソートしたい
例えば、 Aさん,41 Bさん,38 Cさん,60 Aさん,67 Bさん,50 Cさん,38 上のレコードセットを、次のように合計点の高いAさん、Cさん、Bさんの順に、かつ各回の点数順にソートしたいです。 Aさん,67 Aさん,41 Cさん,60 Cさん,38 Bさん,50 Bさん,38 これを簡単なSQLで一発で取れるようなやり方があればうれしいです。
質問日時: 2018/10/06 16:16 質問者: zyousuke
ベストアンサー
1
2
-
ベストアンサー
2
0
-
mysqlで作ったテーブルをphpで出力する方法について
PCも、プログラミングも超初心者です。調べながらコツコツ独学中。 try{ $dbh = new PDO('mysql:host=localhost; db_name=sample1_db, $db_user, $db_pass'); print '接続に成功しました'; //SELECT文を変数に格納 $sql= "SELECT * FROM 'aisatsu'"; //SQLステートメントを実行し、結果を変数に格納 $stmt = $dbh->query($sql); //foreach文で配列の中身を1行ずつ出力 foreach ($stmt as $row) { //データベースのフィールド名で出力 echo $row['id'].':'.$row['text'].':'.$row['number']; //改行を入れる echo '<br>'; } }catch (PDOException $e){ print "接続エラー:{$e->getMessage()}"; } $sql = null; 結果 接続に成功しました しかし、Warning:が出てしまい、foreach()にエラーがあると… 調べながら入力したのですが、エラーから抜け出せません。 何が間違っているのでしょう?mysqlでの設定があるの? 教えてください、よろしくお願いします。
質問日時: 2018/09/30 14:08 質問者: ahimi
ベストアンサー
2
0
-
mysql: 前日あるけど当日存在しないデータ取得方法
以下のようなデータだとします。 +----+-----------+--------+ | id | name | created +----+-----------+--------+ | 1 | A 2018-09-11 | 2 | B 2018-09-11 | 3 | C 2018-09-11 | 4 | C 2018-09-11 | 5 | A 2018-09-12 | 6 | A 2018-09-12 | 7 | C 2018-09-12 +----+-----------+--------+ 2018-09-11には存在(Cみたいに複数存在する場合もある)するんだけど、2018-09-12には無い(この表の場合だとB)のを一発で抽出したいです。 よろしくお願いします。
質問日時: 2018/09/13 16:48 質問者: macus
ベストアンサー
1
0
-
mysql pro 予期せぬエラーが起きます
接続すると Sequel Pro encounted an unexpectedverror. という文が出ます。 どうしたらよいでしょう、、
質問日時: 2018/08/29 14:59 質問者: M.taisei
解決済
1
0
-
mysql pro にアクセスが拒否されます。
ユーザー名パスワードはあっており、mysqlも走っています。 mysqlの応答は Access denied for user 'user'@'localhost' (using password: YES) です。 mysql -u root でmysqlに入ることもできます。 なにがダメなんでしょうか。
質問日時: 2018/08/29 12:20 質問者: M.taisei
解決済
2
0
-
mysqlより取り出した値が、noticeエラーなぜかわからずどなたかご教授いただけないでしょうか?
mysqlより、id, name, passwprdを取得後、修正画面に表示をしようと思うのですが、、 $rlrec["id"],$rlrec["name"],$rlrec["password"]がnotice エラーとなります。。 print_r($rlrec)では、表示されているので、、 配列に、値は、格納されていると思うのですが、何が、ダメなのでしょうか、、?? コードは、下記に載せておきます。。 ご教授いただけたら有り難いです。。 $sql='SELECT id, name, password FROM password3 WHERE 1'; $stmt=$dbh->prepare($sql); $stmt->execute(); $dbh=null; print 'ID・パスワード一覧<br/>'; while(true){ $rec=$stmt->fetch(PDO::FETCH_ASSOC); $rlrec[]=$rec; if($rec==false){ break; } } print_r($rlrec); ?> <table border="8"> <tr bgcolor="#AAAAGG"> <th>ID</th> <th>NAME</th> <th>PASSWORD</th> <tr><td><?php print$rlrec["id"]; ?></td> <td><?php print $rlrec["name"]; ?></td> <td><?php print $rlrec["password"]; ?></td></tr> </table>
質問日時: 2018/08/18 20:20 質問者: ゴスケ
ベストアンサー
6
0
-
【MySQL】テーブルを結合し条件を絞った後に重複を削除したい
MySQL5とPHP7で検索システムを製作しています。 info_table +---+-----+--- | id2 | name |・・・ +---+-----+--- | 1 | AAA | ・・・ | 2 | BBB | ・・・ | 3 | CCC | ・・・ +---+-----+--- list_table +--+------+-----+-----+ | id | name2 | year | text | +--+------+-----+-----+ | 1 | AAA | 2017 | あああ | | 2 | BBB | 2017 | いいい | | 3 | CCC | 2017 | ううう | | 4 | AAA | 2017 | えええ | | 5 | BBB | 2017 | おおお | | 6 | AAA | 2018 | かかか | | 7 | CCC | 2018 | ききき | +--+------+-----+-----+ 上記のような2つのテーブルを結合した後、「yearが2017」のレコードを検索。 その時にname2が重複した場合、idが一番大きいレコード以外を削除したいです。 さらに、ソートもできれば最高です。 理想とする結果 +--+------+-----+-----+---+-----+--- | id | name2 | year | text | id2 | name |・・・ +--+------+-----+-----+---+-----+--- | 3 | CCC | 2017 | ううう | 3 | CCC | ・・・ | 4 | AAA | 2017 | えええ | 1 | AAA | ・・・ | 5 | BBB | 2017 | おおお | 2 | BBB | ・・・ +--+------+-----+-----+---+-----+--- 結合し検索する所までは出来たのですが、重複したレコードの削除で躓いてしまいました。 $sql = 'SELECT * FROM list_table LEFT JOIN info_table ON name = name2 WHERE year = "2017" ORDER BY id'; GROUP byを試しましたが、理想の検索結果にはなりませんでした。 良い方法をご教示頂ければ幸いです。
質問日時: 2018/08/09 06:46 質問者: taku0521goo
解決済
3
0
-
PHPの質問です、ご回答いただけたら非常にありがたいです!!
mysqlからデータをループで引っ張り出してきた配列を そのループの外で表示する方法を教えてください。。
質問日時: 2018/08/07 08:47 質問者: ゴスケ
解決済
1
0
-
MySQLってどんな時に便利ですか?
MySQLってどんな時に便利ですか? 図書館やyahoo知恵袋でもよく登場するデータベース名ですが・・・。 どうやって勉強するのですか?
質問日時: 2018/07/23 01:42 質問者: jump7799
ベストアンサー
1
0
-
ブログサイトを作る時、mysqlは、varchar型、text型、あるいは、どのようにしますか?
mysqlの知識については、レコードを削除、更新程度、PHPとの連動・・。 は出来る程度で、チューニング等については全く知識が無く、 専門的な用語については理解すら出来ないかもしれないド素人と言ってよいです、 なので、ブログの簡易システムを作成しているのですが、行き詰ってしまいました。 まず、人気のブログサイト等を調べてみると、文字数が2000文字程度だったり、 5000文字、そして、10000文字程度なんていうのも、ザラにあるようでした、 と、いうことはDB(mysql(mariaDB))の方は、varchar(10000)とでも、しておくべきでしょうか?。 あるいは、text型を使うべきでしょうか?。 あるいは、一つのテーブルの中に、varchar(3000),varchar(6000)varchar(10000)、 と、それぞれの長さに対応したカラムを作成して、記事の長さによって」、格納場所を分けるべきでしょうか?。 あるいは、テーブル毎分けてしまったほうがよいのでしょうか?。 それとも、他になにか方法があったりするのでしょうか?。 varchar(10000)や、varchar(5000)という単位を指定することも、 text型を使うことも、否定的な意見が沢山あるようで、 かといって、2000~10000文字の記事をランダムに投稿する場合はどうする・。 といった、具体的な答えを探すこともできませんでした。 2000~10000文字の記事を、毎日ランダムに格納することを想定した場合。 varchar型、text型、カラムを分けて作るか、テーブルは分けるかどうか、 アクセス(表示)速度や、今後の管理のし易さ等も踏まえて、 適切な方法をご存知の型がいらっしゃいましたら、 是非ともご回答宜しくお願い致します。
質問日時: 2018/07/14 20:56 質問者: haruki060606
ベストアンサー
1
0
-
カラムの長さを指定する意味について
mysqlの、テーブルを作成する時に、 カラムの長さを(255)のように、()内に指定すると思うのですが、 create table item ( id int not null primary key auto_increment, name varchar(255), price int, memo text ); ↑こんな感じです↑ まず、上記の(255)を指定した場合、 「255文字を格納することができる」と考えてよいのでしょうか? aaaa()←4文字 おおおおおおおお←8文字 ・・・といった感じで、255文字格納出来ると考えて良いのでしょうか?。 その場合、「だったら、出来るだけ大きい数字を入れておけばいいのでは?」と思いました。 つまり、ブログを投稿するサイトを作成していたとします(CMSとでも言うのでしょうか・・?) 記事のタイトルに対して、20文字程度で十分なところを、1000文字に設定しておいたり、 1000文字まで入力できる。 と設定すると、その時点で、1000文字の容量を消費するのでしょうか?。 あるいは、1000文字まで入力できると設定したとしても、 600文字しか打たなかったら、600文字分の容量しか消費しないのでしょうか? 後者だとしたら、文字数を設定する意味ってなんだろ・・? とりあえずデカくしといたらオッケーなのかな・・? ・・と、いう風に考えたのですが、 そうすることによって、どういった不都合が生じますか?。 ご存知の方がいらっしゃいましたら、 ご回答お待ちしております、宜しくお願い致します。
質問日時: 2018/07/12 01:57 質問者: haruki060606
ベストアンサー
2
0
-
mysql(mariaDB)の格納文字数は、最大何文字でしょうか?
mysql(mariaDB)の保管文字数について、伺いたいと思い、質問しました。 PHPを利用して、ブログのシステムを作成したのですが、 HTMLはテンプレートを利用するとして、 記事本文mysqlに保存をして、引っ張ってくる、 そうすれば、記事の検索等に利用できるな・・・。 と、考えていたのですが、そもそも、mysqlというのは、何文字程度保管出来るものなのでしょうか?、 「リファレンスを見なさい」という意見をネットで見かけたのですが、 容量の調べ方が判らずに、行き詰っています。 (見ても、専門用語が並んでおり、「結局、総合計何文字保管出来るのか」ということが理解できませんでした。) 例えば「3000文字の記事が何本格納できるのか・・?」という、具体的な答えが知りたいのですが。 windowsローカルのxamppの場合はどれくらいでしょうか?(HDD160GBのノートPCと仮定します)、 centOSの場合はどれくらいでしょうか?(HDD容量50GBと仮定します) xサーバーの10GB契約の場合はどれくらいでしょうか? 私がデータベース関連の知識は初心者なので、出来るだけ素人にも判るような表現でご回答頂けると、とても助かります。 (「○文字の記事が、○本格納出来る」という具合です) 「○○が判らなくて答えられない」という場合、それも仮定の表現でお答え頂けると有り難いです 今回の質問は「一記事の限界文字数」ではなく「全体の限界文字数」ですので、宜しくお願い致します。 mysql(mariaDB)の格納文字数はどれくらいなのか?について、 ご存知の方はいらっしゃいましたら、ご回答宜しくお願い致します。
質問日時: 2018/07/11 19:40 質問者: haruki060606
ベストアンサー
2
0
-
SQL plusで 試合日時と対戦国の国名をキックオフが早い順に表示させるのに、Joinを使わない場
SQL plusで 試合日時と対戦国の国名をキックオフが早い順に表示させるのに、Joinを使わない場合どおしたらいいですか テーブルがPAIRINGS my_country_idとenemy_country_idが外部キー COUNT RIESテーブルに country_name
質問日時: 2018/07/11 10:58 質問者: Shinm323
解決済
1
0
-
テーブルの複数行を一行にしたい
お世話になります。 以下の①のテーブルを②の形にしたいのですが、 どのようなSQLにすればよいのでしょうか? ※オーダーNoでくくって、名前をひっつけたいのです。 ----------テーブル①------------------- オーダーNo 名前 1 山田 1 木野下 1 鈴木 2 山田 2 田上 ----------テーブル②------------------- オーダーNo 結合した名前 1 山田・木野下・鈴木 2 山田・田上
質問日時: 2018/06/29 15:31 質問者: kgyqk433
ベストアンサー
1
0
-
mysqlでのupdateの使い方について
MySQLを使っています。 officeというDBには id,name,age,prefecture,city というカラムがあります。 prefectureが空(ブランク)のデータを抽出し、そのデータのcityをすべて「その他」にしたいと思っていますが、下記SQLであってますでしょうか? update office set city='その他' where prefecture ='';
質問日時: 2018/06/05 21:39 質問者: sasatoto59
ベストアンサー
2
0
-
SQLの書き方についてご伝授ください。
当方現在mysqlを勉強中なのですが、どうしてもわからない部分があったのでご伝授いただけると幸いです。 Aテーブル id | name 1 | aaa 2 | bbb 3 | ccc 4 | ddd 5 | eee Bテーブル id | group_id 1 | 1 1 | 2 1 | 4 2 | 2 3 | 2 3 | 4 4 | 2 5 | 1 Cテーブル group_id | group_name 1 | grpA 2 | grpB 3 | grpC 4 | grpD group_id の2を削除したいのですが、Cテーブルはそのままgroup_id 2を削除して Bテーブルは、group_id 2を削除して、なおかつ、削除したことによってテーブルから消えるid(この場合はBテーブルのid-2とid-4)のAテーブルのidを削除したいのです。 1文で書くと、ややこしくなりそうなのでわかり易いSQL文は無いでしょうか? やろうと思ったのは、 Cテーブルはそのままgroup_idの2をdeleteして Bテーブルでは、group_idの2だけを持つidを抽出した後にgroup_idの2を削除して 抽出されたidでAテーブルのidを削除って感じにしようと思ったのですが Bテーブルのgroup_id - 2だけをもつidを抽出って部分のSQL文がどうしても作れませんでした。 どなたか、ご伝授いただけると幸いに思います。 よろしくお願いいたします。
質問日時: 2018/05/16 22:41 質問者: beatwave_beatwave
ベストアンサー
1
0
-
商品のデータをウェブサイトから検索したり、入力したり(要するに在庫管理)するデータベースを自作したい
商品のデータをウェブサイトから検索したり、入力したり(要するに在庫管理)するデータベースを自作したいのですが、MySQLのようなデータベースソフトで作れますか? 作れるとしたら、MYSQLはどんな言語でプログラミングすれば良いですか?
質問日時: 2018/05/11 23:29 質問者: nono007
ベストアンサー
1
0
-
MySQLで4つのテーブルを結合してデータを抽出したい。
「会社が仕事を担当する地域」を管理するDBを作っています。1社が複数の市区町村を担当する形態になっています。市区町村・都道府県で検索し、該当する会社を抽出したいです。 一番下にテストデータを記載してあります。ご回答よろしくお願い致します。 【テーブル構成】 [companyテーブル](id,company_name) [cityテーブル](id,city_name,pref_id) ※cityテーブルはpref_idでprefテーブルと結びついています。 [prefテーブル](id.pref_name) ※prefは都道府県を意味しています。 [company_cityテーブル](id,company_id,city_id,number) ※companyとcityを結びつける中間テーブル 抽出したいデータ】 1.複数の市区町村ID(city_id)でAND検索し、該当するcompanyを抽出 例)city_idが1,2 2.複数の市区町村ID(city_id)でOR検索し、該当するcompanyを抽出 例)city_idが1,2 3.都道府県ID(pref_id)でAND検索し、該当するcompanyを抽出 例)pref_idが2,3 4.都道府県ID(pref_id)でOR検索し、該当するcompanyを抽出 例)pref_idが2,3 【出力形式】 ----------------------------------------------------------------- company_id, company_name, city_id, city_name, pref_id, pref_name ----------------------------------------------------------------- company_idでDISTINCTした場合はどれか1つ、city_id,city_name,pref_id,pref_nameが取得できれば良い。できればcompnay_cityテーブルのnumberが1番のものが良いです。 上記形式で出力できない場合は company_id,company_nameだけの出力でも構いません。 ======================================= 自分で実験してみたSQL ======================================= 以前こちら(https://oshiete.goo.ne.jp/qa/9171136.html)で教えて頂いたSQLを元に実験してみました。companyテーブルとcompany_cityテーブルを結びつけることはできますが、ここにcityテーブルとprefテーブルを結合する方法がよくわかりません。 【市区町村ID(city_id)でOR検索】 SELECT DISTINCT c.id, c.company_name, cc.city_id FROM company AS c INNER JOIN company_city AS cc ON c.id = cc.company_id AND cc.city_id IN ( 1, 2 ) WHERE 1 AND NOT ( cc.city_id IS NULL ) [結果]DISTINCTしているのに重複データーが削除されてません。 id | company_name | city_id 1 | A社 | 1 1 | A社 | 2 2 | B社 | 2 【市区町村ID(city_id)でAND検索】 SELECT DISTINCT c.id, c.company_name FROM company AS c WHERE 1 and c.id in( SELECT company_id FROM company_city as cc WHERE city_id in(1,2) GROUP BY company_id HAVING COUNT(*)=2 ) [結果]こちらは求める結果になっていますが、SELECT DISTINCT c.id, c.company_name, cc.city_id のように city_idも表示させようとするとエラーになってしまいます。 id | company_name | 1 | A社 | ======================================= テストデータ ======================================= [cityテーブル] CREATE TABLE IF NOT EXISTS `city` ( `id` int(11) NOT NULL AUTO_INCREMENT, `city_name` varchar(50) DEFAULT NULL, `pref_id` int(2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO `city` (`id`, `city_name`, `pref_id`) VALUES (1, '青森市', 1), (2, '弘前市', 1), (3, '盛岡市', 2), (4, '花巻市', 2); [companyテーブル] CREATE TABLE IF NOT EXISTS `company` ( `id` int(11) NOT NULL AUTO_INCREMENT, `company_name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `company` (`id`, `company_name`) VALUES (1, 'A社'), (2, 'B社'), (3, 'C社'); [compnay_cityテーブル] CREATE TABLE IF NOT EXISTS `company_city` ( `id` int(11) NOT NULL AUTO_INCREMENT, `company_id` int(11) NOT NULL, `city_id` int(11) NOT NULL, `number` int(2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; INSERT INTO `company_city` (`id`, `company_id`, `city_id`, `number`) VALUES (1, 1, 1, 1), (2, 1, 2, 2), (3, 1, 3, 3), (4, 2, 2, 2), (5, 2, 3, 3), (6, 3, 3, 3); [pref]テーブル CREATE TABLE IF NOT EXISTS `pref` ( `id` int(2) NOT NULL AUTO_INCREMENT, `pref_name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `pref` (`id`, `pref_name`) VALUES (1, '北海道'), (2, '青森'), (3, '岩手');
質問日時: 2018/05/08 16:22 質問者: hpmt28
ベストアンサー
1
0
-
この接続した際に、測定した値が反比例の関係にある事について分かりません。どなたか教えて下さいm(_
この接続した際に、測定した値が反比例の関係にある事について分かりません。どなたか教えて下さいm(_ _)m
質問日時: 2018/04/28 20:35 質問者: komaboko0609
解決済
1
0
-
活動電位について質問です。 Na+が流入し電位が変わり、K+が流出して元の電位に戻ると参考書にのって
活動電位について質問です。 Na+が流入し電位が変わり、K+が流出して元の電位に戻ると参考書にのっていたのですが、入ってきたNa+が流出しないと細胞膜外がNa+、細胞内がk+が多いという元状態に戻らないのでは、ないのでしょうか?
質問日時: 2018/04/27 18:27 質問者: さとうくん
解決済
1
0
-
SQLでのカラムの定義について
mySQLの入門書を読んでいるところです。 C言語などでは、 int id; char name[50]; のように、変数名は、「型と変数名」の順に定義するのに対し、 SQLでは mysql_query("create table test(id int,name char(50))"); と順番が逆になっています。流儀といえばそれまでですが、何か逆にした理由あるのでしょうか? 解説お願いします。
質問日時: 2018/04/14 07:28 質問者: usa3usa
ベストアンサー
2
0
-
グラフイックカードアップグレードについて
こんにちわ ATI Raden Xpress 1100で、8.383.00が現状であります。 上記メーカーで、8.593.100へアップグレードしたほうが良いと聞いたので、実行したいのですが、 ATIのホームページからのダウンロードが、いまいちよく解りません。 何方様かご教授お願い致します。 普通に、デバイスから更新すると、{最新です}と、出てしまい細かなグレードアップが出来ないものですから・・・・・・ 尚 ノートPC VISTA SP2 です。 敬具
質問日時: 2018/04/09 16:27 質問者: iikanjinokkk
ベストアンサー
3
0
-
mysqldumpで全データベースバックアップについて
mysqldumpで全データベースをバックアップしようとしたところ、特定のテーブルのみ内容が少なくすべてのデータがバックアップ出来ません。 その他のテーブルはすべて取得出来ています。 このような状況の詳しい情報がなかなかみつからず、困っております。 どなたか詳しい方お願いいたします。
質問日時: 2018/03/19 19:05 質問者: hana43
ベストアンサー
2
0
-
phpmyadminで問い合わせた結果が「検索」と「SQL」で異なる
phpmyadmin3.5.8.1でメニューの「検索」から値を入力すると正しい結果が表示されるのですが、メニューの「SQL」から同じ構文で問い合わせをしても全く正しくない結果が表示されます。具体的にはすべてのレコードが表示されます。 下記は「検索」で正しい結果が表示された検索条件です。 SELECT * FROM `data` WHERE `officeid` =2 ORDER BY `data`.`data` DESC LIMIT 30 , 30 それをそのまま下記のように一部変更して「SQL」にコピペして使っても具体的にはすべてのレコードが表示されてしまいます。 SELECT * FROM `data` WHERE `officeid` =2 なにが間違っているのでしょうか?
質問日時: 2018/03/13 16:14 質問者: sasatoto59
ベストアンサー
2
0
-
1対多で、多側の1側に紐づく最後のレコードの属性とマッチする1側を抽出するには?
Articlesテーブルに Commentsテーブルが1対多の関係で紐付いています。 Commentテーブルに、たとえば col_1 というコラムがあります。以下のような感じです create table articles (id,content); create table comments (id, article_id, col_1); 質問内容は、articlesに紐づくそれぞれの commentsのうち *最後に* 作成されたcommentsの col_1 コラムが合致する articles を抽出したいのです。 ご指導のほどどうぞよろしくお願いいたします。
質問日時: 2018/03/10 19:31 質問者: notty123
解決済
1
0
-
MySQLで困っています。。
Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/qdb", "root", "password"); stmt = conn.createStatement(); ret = stmt.executeUpdate("INSERT INTO kekka(kaisu) VALUES(MAX(kaisu)+1 ,seikairitsu)"); という文脈からDBにデータを保存したいです。 INSERT INTO kekka(kaisu) VALUES(MAX(kaisu)+1 ,seikairitsu 上記の部分にエラーがでているようです。kaisu という変数を1から連番で数字を格納していきたいのですが、どのように記述すればよいでしょうか?
質問日時: 2018/02/05 13:01 質問者: えじ
解決済
1
0
-
ベストアンサー
1
1
-
テーブルを結合してSELECTする場合のSQL
main, a, b, c という4つのテーブルがあり、mainテーブルには、a_id, b_id, c_idという列があり、 それぞれ、a, b, cテーブルの外部キーになっています。 a, b, cテーブルは、いずれも、id, nameの2列で構成されています。 4つのテーブルから、SELECTし、次のような結果を得たいです。 a_id, a.name, b_id, b.name, c_id, c.name mainテーブルのデータですが、a_id, b_id列は必ず値が入りますが、 c_idは、b_idの値によってはNULLの場合があります。 この条件で行き詰ってしまいました。 この条件がなければ、次のようなSQLで良いのかなと思ったのですが、 select main.a_id as aid, a.name, main.b_id as bid, b.name, main.c_id as cid, c.name from main, a, b, c where aid=a.id and bid=b.id and cid=c.id; このままだと、c_idがNULLになるレコードが抽出されません。 できれば一文でSELECTしたいのですが、何か良い方法はありますでしょうか。 教えて頂けますと助かります。
質問日時: 2018/01/30 14:23 質問者: yuri_tti
ベストアンサー
2
0
-
データベース(mysql)の日本語表示について
初めまして。 教材とネットを使い、以下環境&設定でDBを学習中ですが、 コンソール上では日本語が「?」で表示され、ブラウザ上では文字化けしてます。 下記環境の前に、XAMPPを7.1.9で動かしてましたが同じで、 まさかと思いつつ最新にしましたが、変わらずでした。 【環境】 Windows7(64bit)上にXAMPP(Ver7.2.1) ※DLファイルはxampp-win32-7.2.1-0-VC15-installerです。 【設定】 mysql側(C:\xampp\mysql\binの「my.ini」ファイルを修正) [client]の default-character-set=utf8 [mysqld]の character-set-server=utf8 skip-character-set-client-handshake php側(C:\xampp\phpのphp.iniを修正) default characterが以下 default_charset="UTF-8" timezoneが以下 date.timezone = Asia/Tokyo mbstringが以下2つ mbstring.language = Japanese mbstring.internal_encoding = UTF-8 phpmyadminの一般設定の照合手順を以下へ utf8mb4_unicode_ci ↓ utf8_general_ci 【現状】 画像真ん中ちょい上のnameの個所 セットしたデータは旧字を使わない人名です。 お気づきの点がありましたら、ご教授頂ければと思います。
質問日時: 2018/01/29 17:58 質問者: yoshikadu
解決済
2
0
-
SQL文の入れ子について
SELECT~FROM(SELECT~FROM~JOIN~WHERE~BETWEEN~AND~GROUP BY~HAVING~)JOIN~JOIN~ このような文があるのですが,これ全体をA文と置いて,中に入れることは可能ですか。 SELECT * FROM(A文) 可能なら同じ結果になるはずですよね。でもエラーになってしまいます。 何か注意することはありますか。初心者なのでよろしくお願いします。
質問日時: 2018/01/24 10:31 質問者: payphone
ベストアンサー
2
0
-
SQLのIF文
素人で申し訳ございません。 以下のSQLを実行すると SELECT TANI FROM K_YOUSHI WHERE ID="1"; 結果が「EN」の場合と「DL」の場合があります。 「EN」の場合は「円」,「DL」の場合は「ドル」と表示させたいのですが、 select文で,TANI=EN なら、円と表示と指示するのはどのようにしたらよいのでしょうか? 申し訳ございませんが、よろしくお願いいたします。
質問日時: 2018/01/16 18:07 質問者: kgyqk433
ベストアンサー
3
0
-
MySQLとターミナルのことについて
システム開発初心者です。 私はMySQLのことについてなかなかすんなりと落とし込めていません。 学習動画を見ながら、一つのプログラムを作成しました。 その際にMySQLの操作を行いましてすんなりとできました。 そののち、いろいろなプログラムを作成していくうえでしっかりMySQLを基礎から勉強する必要があるかもしれない。と思い、MySQLの操作方法について勉強しました。 しかし、いまいち何について説明をしているのかわかりません。 ターミナルでテーブルの作成とかデータの並び替えとかそのような作業をしておりますがいったいなんなのでしょうか? MySQLとはあるアプリケーションンの開発の前に事前に何かの設定をしてそれから作業に取り掛かるみたいなものなのか? でも実際にファイルを一つ作ってデータベースの接続なども行っていますが、あれやこれやと本当に何が必要なのか何のための設定なのかよくわかりません汗 詳しく教えていただけないでしょうか?
質問日時: 2018/01/16 10:02 質問者: sayaendo
解決済
2
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【MySQL】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記の問合せを行うクエリを、PhpMy...
-
LIMIT で条件を満たしているのにエ...
-
エラー 1068 (42000): 複数の主キー...
-
SQLです!!教えてください。
-
select *, `人口(男)`AND`人口(女)`...
-
SQLです!!教えてください。あって...
-
日本の全市区町村を人口密度が低い...
-
テーブル名が可変の場合のクエリの...
-
#1062 - '0' は索引 'PRIMARY' で重...
-
【投稿情報用データベース posts】...
-
SQLです!!教えてください。あって...
-
SQLです教えてくださいお願いします
-
`picture` varchar(255) のコマンド...
-
同一日に複数レコードがある場合に...
-
MAMP 99ドル約1.6万円 高いですね
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年月日`...
-
SQLです教えてくださいお願いします
-
SQLを作ったのですがうまくいきませ...
-
(初心者)MySQLやmaraDBで、create t...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlがインストールされているのか...
-
エラー 1068 (42000): 複数の主キー...
-
SQLでカラムを追加し、条件に合致し...
-
【初歩】ラジオボタンをつかったPHP...
-
テーブル名が可変の場合のクエリの...
-
#1062 - '0' は索引 'PRIMARY' で重...
-
データベースの接続に失敗してしま...
-
下記の問合せを行うクエリを、PhpMy...
-
SQLです。こんな感じですか?あって...
-
mysqlのupdate構文についての質問で...
-
下記の問合せを行うクエリを、PhpMy...
-
MySQLでcreateが使えない MySQLを使...
-
utf8bomとutf8mb4の違いがいまいち...
-
SQLです教えてくださいお願いします...
-
mysqlがインストールされているのか...
-
MySQL NULLだけをカウントして抽出...
-
うまくいきません教えてくださいお...
-
SQLで日付別のIDを生成するには
-
SQLです教えてくださいお願いします
-
SQLで漢字名称を都道府県や市区町村...
おすすめ情報