回答(全3件)
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
2
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
掲示板はSQLを丸投げする場ではありません。SQL入門から勉強してください。
MySQL初心者入門講座
2015/12/25 13:10 投稿
コメント(7)
2015/12/25 17:37 編集
横からすみません。
推奨していない質問
https://teratail.com/help/avoid-asking
>コードをください・デバッグしてください等の丸投げの質問
何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
問題や質問は実際に調査や作業に取り組み、具体的なところで生まれると考えるためです。
まずは実際に作業に取り組み、つまづいたところで投稿をしてみてください。
と明記されています。
これは質問フォームにもわかりやすいリンクで記載されています。
質問からは「何をどのように試して、どうつまづいたのか」についての情報がが一切ないので
「丸投げ」と判断されても仕方が無いと思いますよ。
ここのサイトの使い方や運営方針を読んでから、書きこみしましょう。
2015/12/25 17:44
初心者の質問禁止とは書いてありませんが、
「評価を下げる」のリンクにマウスカーソルを合わせると
丸投げはサイトポリシーに反する質問と定義されて非推奨となっていますから
Orlofskyさんの回答はサイトポリシーにのっとったものと判断できますよ?
2015/12/25 18:19
”規約”の話ならWhite_Rabbitさんの言っていることは間違ってないです。
ただ、他の方々の回答にもあるように”課題の丸投げ”は推奨されていません。
ここはあくまでも問題に対してサポートする場であり、問題の解答をもらう場ではありません。
ご自身で考えて実行してみたSQLを質問の中に記述していればこんなことにならなかったかと思います。
横から失礼しました。
2015/12/26 09:37 編集
はい、ご指摘の通り丸投げにならないように、仕様だけではなく、データのパターン例や抽出結果例をを具体的に明確に記述させていただき、質問内容も明確になるようにしております。
みなさんは、運営様とお話しをしたことがないとかがえておりますがいかがでしょうか?
それで、メニューや記述に書かれていることをそのまま受けて追っていると考えております。
私は、なんども運営様へメールでやり取りしております。
※そこは運営様の記述文の問題ですので、どのように、運営様と質問したかは、あえて書きません(行動力があり本来の運営規約や規則を確認したか、それとも、提示されたも記述不足やミスのことをそのままうのみにするか、それは、人それぞれで、確認時間がない、確認をすることすら思いつかない、確認とかせずに言われたままをうのみにする、その他、色々な方がいらっしゃいます)。
※余談ですがご注意です。ご高齢でしたら、言われたことや書かれていることをうのみにして、振り込み詐欺などに合わないようご注意ください。何が正しいかを確認すべきところへ、勘違いや失敗をする前に、ご確認することをお勧めいたします。
横から失礼しました(私の質問の回答内容とは違い、私の質問自体の議論ですので、そこは運営様へ本質を確認していない人の意見は私の求めている回答の範疇外ですので退任行儀な記述をあえて致します)。
2015/12/26 09:58
丸投げの意味わかって言っていますか?
具体的に「ここのコードがわからない」ではなく、「これを実現するためのコードを教えて」という、結局は「仕事の依頼」ですよね?
2015/12/26 10:49
どうやら”丸投げ”という意味が分かってないみたいですね。
https://ja.wikipedia.org/wiki/%E4%B8%B8%E6%8A%95%E3%81%92
今回のご質問は記述内容的に
「仕様とデータパターン、想定結果を記述しますのでSQLを提供してください。」
と捉えることができます。
これを”丸投げ”と言わずになんというのでしょうか?
あー、エンジニアは話が通じないってこういうことなのか。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
質問者が選んだベストアンサー
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
0
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
非効率だけど、以下のSQLで実現できるはず、やって見てください。
-- 今日以降に予約のある顧客の予約+顧客データーは、全て抽出。※除く、論理削除レコード。
select
cust.id,
cust.name,
cust.tel,
re.revation_date,
re.revation_starttime
from
contomer cust
left join revation re on re.costomer_id = cust.id and re.del = 0 and re.revation_date > now()
where
cust.del = 0
and re.costomer_id is not null
-- 今日以降に予約がなく、過去に予約がある顧客の場合は、過去の最大の予約日+予約開始時間のレコードを1つ抽出。※除く、論理削除レコード。
select
cust.id,
cust.name,
cust.tel,
T2.revation_date,
T2.revation_starttime
from
contomer cust
left join (select
re2.revation_date,
re2.revation_starttime
from
revation re2
where re2.id =
( select t.id
from
(select
max(re.revation_date) as revation_date, re.id, re.costomer_id
from
revation re
where
re.costomer_id = cust.id
and re.del = 0
group by re.id, re.costomer_id ,re.revation_date
) t
)
) T2
where
cust.del = 0
and not exists (select 1 from revation re where re.costomer_id = cust.id and re.del = 0 and re.revation_date > now())
and exists (select 1 from revation re where re.costomer_id = cust.id and re.del = 0 and re.revation_date <= now())
-- 過去、未来に予約のない顧客は、顧客情報のみ抽出。
select
cust.id,
cust.name,
cust.tel
from
contomer cust
where
not exists (select 1 from revation re where re.costomer_id = cust.id and re.del = 0)
2015/12/25 15:17 投稿
コメント(4)
2015/12/25 15:24
ご回答ありがとうございます。
心より感謝致しております。ありがとうございます。
大変お手数をおかけし、申し訳ございません。
早速、クエリーを作成して、まずは、DBツール上で、実行してみます。
繰り返しになりますが、お手数をお掛け致しました。
2015/12/25 17:15
条件1のSQLはLEFT JOINしたあとIS NOT NULLの制約をかけるくらいならJOINでよくないですか?
条件2のSQLはLEFT JOINする結合条件がないですし、GROUP BYの項目に主キー?が入っているので集約できていないですよ?
2015/12/26 09:44 編集
>YiLi様
ご回答ありがとございます。大変感謝しております。
これはこのサイトの方針と個人孤児的な意見でのおねがいですが、YiLi様のように、このサイトでは難易度が難しいや容易などに制限はございません。幅広い層の開発者に公開されているサイトでございます。従いまして、YiLi様のようにこのようにSQL文などのご提示のご回答を頂ける方を、質問者はお待ちしておりますので、間違いなどをお気にせずにご回答頂ければ幸いです。こまっている質問者がいる状況の中で、YuLi様にお時間があるときにしても、どんどん回答して頂ければ幸いです。それが、このサイトの存在意義であり、有効になるかと考えております。※回答欄に、どこかのフルーツ名のような大手の会社のサポートと同じように、何度、色々質問しても、マニュアルのURLを一文で送ってきて自分で調べろ!!で終わらせる会社と同じ体質の回答者がいらしゃる中で、日本大手のサポートのように適切で明確なサポートと同じように、ご回答を頂けるYiLi様はすばらしい方の方と考えます。
そして、それに間違いや、さらに良い方法があるかは、さらに、ここのサイトのコメント機能で、意見をみなさんで出し合って頂いて、良いものになっていければ、なお幸いです。
SQLのご提示とても感謝しております。ありがとうございました。
大変お手数をお掛け致しました。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
0
回答の評価を下げる
以下のような回答は評価を下げられます。
- 間違っている回答
- 質問の回答になっていない投稿
- 不快な投稿
評価を下げる際は理由をコメントしてください。
仕様1を実現するSQL、仕様2を実現するSQL、仕様3を実現するSQL
それぞれを作ってUNION ALLでつなげば希望の結果が得られるはずです。
そんなに難しくないはずなので頑張ってください。
2015/12/25 13:29 投稿
コメント(1)
2015/12/25 15:32
ありがとうございます。
ここのサイトは、多くの方ご利用されいますので、その方のご回答を待ちつつ、それを基に、SQL文を作成し、自分の勉強へもつなげます。
お手数をおかけしました。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
関連した質問
-
受付中
phpでテーブルのID毎に画面を用意したいのですが・・・
いま現在cakephpを使いwebを制作しています。 mysqlでお店の情報を持つDBを構築しました。 まずお店の一覧を表示してその中でお店の名前をリンクにしてそのリンクをクリ
-
解決済
PHP 配列の値をまとめて表示したい
こんにちは。 現在、PHPであるデータベースを作っています。 と、言っても、MySQLとか使うわけでもなく、テキストファイルにArrayを書き込んでそれをPHPで読み込んでfore
-
受付中
アクセス解析を自前で作りたい
自分のサイト用にアクセス解析を自前で作りたいと思っています。 javascriptで解析してAjaxで送信し、サーバー側のphpで受け取ってMySQLに溜め込むことを想定しています
-
受付中
[PHP(掲示板)]preg_replaceで日付表記の変更方法/名前空欄を名無しで登録する方法
前回も質問させていただきましたが、解決できなかったため再度質問させて頂きました。 (入力画面.php)→(確認画面.php)→(一覧画面.php)という流れで掲示板を作りました。
同じタグがついた質問を見る
- Java
2890questions
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
- MySQL
1075questions
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
White_Rabbit
2015/12/25 15:22
えっ、ここのサイト規約には、技術の質問は、初心者は禁止などの規定がありませんが、
Orlofskyさん、ここのサイトの使い方や運営方針を読んでから、書きこみしましょう。
Orlofskyさんには、まだむずかしいのかもしれませんが、社会人になると、それらをまもることを学びますor身に付きます。従って、他の事もそうですが、ルールにそって行動できるよう、且、規則に沿ったことができるようになるとよいでしょう。頑張ってください。