• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:select文の記述について)

select文の記述について

lupin-333333の回答

回答No.1

where句を括弧を使って and , or で使い分けるだけです。 小学生くらいの算数で、出てくるグループ分けレベルです。

関連するQ&A

  • 複数テーブルをまとめてソート

    たとえば次のような、都道府県ごとのテーブルがあり、 ID、名前、得点の列があるとします。 テーブル1(テーブル名:tokyo) ID NAME SCORE 1 yamada 89 2 tanaka 45 テーブル2(テーブル名:osaka) ID NAME SCORE 1 sato 65 2 suzuki 22 これらのテーブルをまとめて、全国で得点が上位順に並べたいと 思っております。また、結果にはどのテーブルに所属するものかを 判別する列を追加したいのですが、どういう文を記述したらよいのでしょうか? 望みの結果は次のようなものです。 NAME SCORE TABLE_NAME yamada 89 tokyo sato 65 osaka tanaka 45 tokyo suzuki 22 osaka よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQL文がわかりません。

    いつもお世話になってます。 PHP+MySQLを使用しています。 下記のような操作を行いたいのですが、 MySQL文を教えて頂けませんでしょうか。 table名:person person_id : name : email 1 : tanaka : aaaaa 2 : suzuki : bbbbb 3 : sato : ccccc 4 : saito : ddddd 5 : takahasi : eeeee 上記のようなテーブルがあったとして、 例えば、person_idが2,4のものを抽出して、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 4 : saito : ddddd : 11-19 上記テーブルに追加(send_idの3,4)したいのです。 ticketカラムは、send_idの3,4で同じ値(文字列)を使います。 大変お手数ですが、上記内容にてご教授願います。

    • ベストアンサー
    • MySQL
  • MySQL文を教えて下さい。

    テーブル名:table1 name | email | date ------+------------+------------- tanaka | aaaaaaaaaaa | 2010-11-01 sato | aaaaaaaaaaa | 2010-11-15 suzuki | bbbbbbbbbbb | 2010-11-10 上記のようなテーブルがあった時、同じemailの場合、 日付の新しいカラムで抽出して、下記の様な結果を得たいです。 name | email | date ------+------------+------------- sato | aaaaaaaaaaa | 2010-11-15 suzuki | bbbbbbbbbbb | 2010-11-10 この様な結果を得る為のMySQL文を教えて下さい。 初歩的な質問で申し訳ありません。お願い致します。

    • ベストアンサー
    • MySQL
  • SQL文の書き方について

    お世話になります。下記のような結果を求めるSQL文についてどなたかご教示をお願いします。 以下の2つのテーブル(SMPL_TBL1,SMPL_TBL2)があったとします。 (SMPL_TBL1) ID | NAME | BUSHO ---+--------+--------- 01 | YAMADA | A_GRP 02 | SUZUKI | A_GRP 03 | OKADA | B_GRP 04 | TAKAGI | C_GRP (SMPL_TBL2) ID | POINT | ---+-------+- 01 | 1 | 01 | 2 | 01 | 3 | 02 | 1 | 02 | 2 | 03 | 1 | 04 | 1 | 04 | 2 | 04 | 3 | 04 | 4 | 04 | 5 | 上記テーブルから以下のような結果を得たい場合、 どのようなSQL文を投げればいいでしょうか? (求める結果) ・各人ごとのPOINTのMAX値と各人のデータを抽出(POINTは1~999までの整数です) ID | NAME | POINT| BUSHO ---+--------+------+-------- 01 | YAMADA | 3 | A_GRP 02 | SUZUKI | 2 | A_GRP 03 | OKADA | 1 | B_GRP 04 | TAKAGI | 5 | C_GRP よろしくお願いいたします。

  • MySQLで複数のSELECT文を1文にまとめたい

    以下のようなテーブル table1 があります。 ******************* table1 ******************* Name, Kyouka, Score, ID ******************* 山田, 国語, 92, 10001 鈴木, 国語, 71, 10002 田中, 国語, 89, 10003 山田, 数学, 65, 10004 鈴木, 数学, 69, 10005 杉田, 英語, 96, 10006 山田, 英語, 63, 10007 田中, 英語, 76, 10008 ... ******************* カラムIDはPRIMARYを指定しています。 カラムScoreはインデックスを作成しています。 このテーブルで、「IDと教科」を指定したときに、以下の2つのデータを得たいと思っています。 (1) IDに対応する名前と、その教科中の順位 (2) その教科のレコード数 具体例としては、例えば「ID=10001、教科=国語」を指定したときに、「山田、3人中1位」というような情報が得たいです。 (「ID=10001、教科=英語」のようなおかしな組み合わせは指定しないようになっています。) (1) は、以下のようにして名前と順位を得る事が出来ました。 SELECT Name, (SELECT COUNT(*) + 1 FROM table1 b WHERE b.Score > a.Score and Kyouka='国語') AS rank FROM table1 a WHERE ID='10001' ORDER BY Score DESC; (2)は、以下のようにして特定の教科のレコード数を得る事が出来ました。 SELECT COUNT(*) FROM table1 WHERE Kyouka='国語'; しかし、実際にはレコード数が大量にあり、頻繁にこの検索を実行する予定なので、負荷が心配です。 出来るだけサーバーの負荷を減らすために、1回のSELECT文の実行で(1)と(2)をどちらも実現できるような方法はないでしょうか。 また、このテーブルでインデックスを作成しているのはIDとScoreのみですが、より負荷を減らすにはKyoukaにもインデックスを作成した方が良いでしょうか。 何卒、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • もうちょっと賢いSELECT文が書けないものでしょうか

    初めまして、最近SQLをかじり始めたぺーぺーです。 効率の悪いSELECT文しか書けずに困っています。 下記のテーブルsoftware_tableから、 ・name列「oracle」 ・version値が最大 のレコードに含まれるid(=3)を拾ってきたいのですが、自分の頭では副問い合わせを使う方法か、ソートを使う方法しか思いつきません。 問題は副問い合わせ・ソートを使うと計算コストが大きくなってしまうことで、できることなら副問い合わせ・ソートを使わずに解決したいのですが、何か方法はないものでしょうか? よろしくお願い致します。 ----------------------------- software_table id name version 1 oracle 1 2 oracle 2 3 oracle 3 4 postgres 1 5 postgres 2 6 postgres 3 7 postgres 4 ----------------------------- ■副問い合わせを使った方法 SELECT id FROM software_table WHERE name = 'oracle' AND version = (SELECT max(version) FROM software_table WHERE name = 'oracle'); ■ソートを使った例 SELECT id FROM software_table WHERE name = 'oracle' ORDER BY version DESC LIMIT 1 OFFSET 0; -----------------------------

  • MySQL文(プリペアドクエリ)がわかりません。

    いつもお世話になってます。 PHP+MySQLを使用しています。 下記のような操作を行いたいのですが、 MySQL文を教えて頂けませんでしょうか。 table名:person person_id : name : email 1 : tanaka : aaaaa 2 : suzuki : bbbbb 3 : sato : ccccc 4 : saito : ddddd 5 : takahasi : eeeee 上記のようなテーブルがあったとして、 例えば、person_idが2,4のものを抽出して、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 4 : saito : ddddd : 11-19 上記テーブルに追加(send_idの3,4)したいのです。 ticketカラムは、send_idの3,4で同じ値(文字列)を使います。 SQL文だと、 INSERT INTO sendmail (name,email,ticket) SELECT name,email,'11-19' FROM person WHERE person_id IN ( 2 , 4 ) で大丈夫なのはわかりました。 これをプリペアドクエリに変換する方法がわかりません。 $para01="11-19"; $para02="2,4"; $db = new mysqli("xxxxx","yyyyy","zzzzz","wwwww"); $presql = $db->prepare("INSERT INTO sendmail (name,email,ticket) SELECT name,email,? FROM person WHERE person_id IN ( ? )"); $presql->bind_param("ss",$para01,$para02); $presql->execute(); 上記で実行してみましたが、$para02は"2"と判断されて、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 になります。(person_idが4のものが抽出されない。) 大変お手数ですが、上記内容にてご教授願います。

    • ベストアンサー
    • MySQL
  • Select文を教えて下さい

    select文についてお教えください。環境はAccess2003,Win XPで動かしています。 TABLE ID(INT),STOCK(INT) 001,100 001,200 001, 002,200 002,300 002,400 003,100 上記のようなテーブル、データがあります。 ■抽出したい行 001,100 001,200 ■抽出条件 STOCKに空がはいっている。 STOCKに空がはいっている行は選択しない。 STOCKに空がはいっているIDで、同一IDでSTOCKにデータがある行を抜き出したいです。 どのようにSQLを組み立てればよいかわかりません。 宜しくお願い致します。

  • SQLのSELECT文でのランダム抽出について

    SQLのSELECT文でのランダム抽出について データベースSQLiteでSELECT文の結果をランダムに抽出するには ORDER BY RANDOM()を使うようですが、前回ランダムに抽出された順序と同じ結果を得るにはどのようにすればよいでしょうか。 MySQLの場合は、ORDER BY RAND(n)でnの値を同じにすれば、同じ順序で抽出できるようですが、SQLiteでは無理なようです。 今考えているのはRANDOM()で得られた列の一つ(たとえばID)を一時的に別のテーブルを作成して保存後、その一時テーブルを利用するというものですが、もっと良い方法があるのではと思います。 何か別の方法がありましたら、教えていただきたくよろしくお願いいたします。

  • select文について

    現在、"user"というテーブルに"id"と"date(datetime)"という項目があり、その"date"にあるデータの中から月を指定して抽出したくて以下ようなSQL文を書いたのですがうまくいきません。 SELECT `id` FROM `user` WHERE convert((SELECT extract(month from `date`) FROM `user`), INTEGER) = 9 mysql5.0です。 よろしくお願いします。

    • ベストアンサー
    • MySQL