0218NAME IS NULL2018/03/29(木) 12:34:37.82ID:???>>216 自己紹介おつ 0219NAME IS NULL2018/04/03(火) 20:44:20.13ID:wbI218I7 select A1,A2 from tableA select B1 from tableB
これをそのまま流すと結果は2行になりますが、 これをA1,A2,B1と1行でとる方法はないでしょうか 0220NAME IS NULL2018/04/03(火) 21:07:32.04ID:??? 書き忘れましたが、どちらも1行しか返さないSQLです 0221NAME IS NULL2018/04/03(火) 21:10:17.03ID:???>>219 それぞれの実行結果が1行しかないなら
select tableA.A1, tableA.A2, tableB.B1 from tableA, tableB; 0222NAME IS NULL2018/04/03(火) 22:07:12.44ID:???>>221 なるほど、ありがとうございます 0223NAME IS NULL2018/04/04(水) 08:04:54.29ID:2HlnMqVc MysqlがすぐおちるのですがMariaDBにすれば改善されるのでしょうか?
よく出るエラーメッセージはこんなやつです。 mysqli_set_charset(): Error executing query in DBのURL
MariaDBに関するスレもあります。覗いてみると良いかもしれません。 https://mevius.5ch.net/test/read.cgi/db/1360677476/0225NAME IS NULL2018/04/04(水) 16:32:49.81ID:+pp14tKO 誤爆かもな 0226NAME IS NULL2018/04/04(水) 21:47:48.32ID:??? with句で取得した数列を別のテーブルでその数列と一致するレコードを取得したいんだけどどうすればいいでしょう? withで別で取得したリスト名Aとし取得結果がBだとすると select ※ from X where X.C IN (SELECT B FROM A) で取得しようとしたんだが上手くいかずいろいろとぐぐってみたけどわからなかったです・・・ 0227NAME IS NULL2018/04/04(水) 21:48:51.99ID:tDmvnrOB DB名も書けないとか 0228NAME IS NULL2018/04/04(水) 22:51:56.44ID:??? withで別で取得したってのが意味わからん その部分を含めてどうやろうとしたのか書けば答えようもあるが 0229NAME IS NULL2018/04/04(水) 23:31:43.42ID:??? すみません。書き方が悪かったです。 使用しているのはoracleです。 with A AS (SELECT X FROM Z GROUP BY X) SELECT COUNT(※) FROM B WHERE B.C IN(SELECT X FROM A) のような文を書いてエラーとなりました。 イメージ的にはZテーブル上のXの数列についてBテーブルに何件存在するかを確認したいです。 023060改め神 ◆YDp73vGOso3d 2018/04/04(水) 23:59:17.52ID:??? 参考書でも開けばそんくらいわかんだろゴミ 早くお前ら答えろや スレチの質問には誘導して俺の質問には答えないって根性捻れまくりだろお前ら 0231NAME IS NULL2018/04/05(木) 01:39:19.17ID:l3AE4+ue 「Xの数列」という説明が他人には理解できない。
かなり単純なことを聞いていると予想はできるが、なぜこんなに難しく考えているのか? 0232NAME IS NULL2018/04/05(木) 06:25:28.48ID:??? 本当に>>229の通りに書いているならcount(※)がcount(*)の間違いだが それ以外に致命的な間違いは見当たらない まあこう書いても同じ意味にはなる select count(*) from B inner join Z on B.C = Z.X; 0233NAME IS NULL2018/04/05(木) 13:53:35.43ID:???>>231 再帰クエリーないけど? 0234NAME IS NULL2018/04/05(木) 19:22:56.90ID:l3AE4+ue 再帰のないWITHを再帰クエリと呼ぶなということか。
標準SQLではWITH RECURSIVEと書かないといけないが、Oracleはたしかこの構文がない気がする。 0235NAME IS NULL2018/04/05(木) 19:24:12.57ID:l3AE4+ue 他人のミスに厳しいならそう自己紹介してくれ。 0236NAME IS NULL2018/04/05(木) 20:02:25.68ID:??? ではまずご自身からどうぞ 0237NAME IS NULL2018/04/05(木) 20:52:54.79ID:??? やあ、俺 0238NAME IS NULL2018/04/05(木) 21:29:58.31ID:???>>232 B.CかZ.Xの少なくともどちらかがユニークでないと同じ意味にはならん 0239NAME IS NULL2018/04/06(金) 00:33:07.86ID:GwnuWxH/ このスレはSQL入門スレなのかSQLオタクスレなのか?
よくわからない質問に、エスパー回答をするというIT技術者の間ではあまりないやりとりが多い。 0240神 ◆YDp73vGOso3d 2018/04/06(金) 01:28:52.77ID:??? テンプレ見ろゴミ ここは初心者用スレだよ なのに俺の質問は基礎的すぎるとかいう謎老人のおかげで誰も答えんのや まじでゴミSEは右ならえの自我すら持たない穢多非人よ 0241NAME IS NULL2018/04/06(金) 08:24:33.64ID:??? いつまで粘着してんだ、このキチは 0242NAME IS NULL2018/04/06(金) 12:19:44.04ID:1nt8ANDW>>239 IT技術者の間ではよくわからない質問によくわからない回答をして お互い納得するのがデフォルトスタンダードですものねw 0243NAME IS NULL2018/04/06(金) 12:43:29.95ID:??? ここはわざと言い間違えるスレか? 0244NAME IS NULL2018/04/06(金) 12:58:57.72ID:GwnuWxH/ まず質問者が無礼。回答者がとりあえず想像で回答。これがこのスレが機能していない理由。 0245NAME IS NULL2018/04/06(金) 13:59:04.00ID:GwnuWxH/>>240 初心者向けであれば、SQLを回答するのではなく、何をしようとしているのを確認するのが先です。できればいい論をデータベース板で確認するのはおかしいので、プログラム板やプログラマ板で質問すべきです。 0246神 ◆YDp73vGOso3d 2018/04/06(金) 20:23:48.23ID:???>>245 わかったわかったお前の意見とかどうでもいいわ 文体見るだけで中年のごみおっさんってわかるわやばいよ君? 0247NAME IS NULL2018/04/06(金) 20:45:46.08ID:??? 匿名の掲示板で誰でも書き込めるんだから 気に入らなければスルーすれば良いだけ 質問者が無礼って、お前に害悪を加えてきたわけじゃあるまいし 0248NAME IS NULL2018/04/06(金) 21:22:42.32ID:+EV0F8Wd 助けてください。 ACCESSのDBなんですが、 tblAは、[id][なまえ][電話番号][性別][入会日]というフィールド構成のマスター名簿 tblBは、[id][入金日][入金額]というフィールド構成です。
このテーブルを元に、ACCESSやEXCELのVBA上で、
[id] [なまえ] idごとの[入金額]の合計 WHERE 昨日=<[入金日] <= 明日
というレコードセットを取得したいです。 tblBの集計に、tblAからもってきたなまえフィールドをくっつけたい、という感じです。 INNER JOINとか、そういうのを駆使して、なんとかひとつのSQL文を作りたいのですが、 うまくいきません。 どなたか、SQL文そのものをご教示ください。 お願いします。 0249NAME IS NULL2018/04/06(金) 21:55:43.69ID:???>>248 このままだとよくわからん 「誰が」入金したという情報はどこで管理しているの? 0250NAME IS NULL2018/04/06(金) 22:00:07.59ID:+EV0F8Wd>>249 すみません。idというのは、メンバーidのことです。レコードidではありません。 わかりづらくてすみません。
メンバー(マスターで、idから名前がわかる)による入金の記録がBテーブルです。 それぞれのメンバーが、合計でいくら入金したのか、を集計したいのですが、 Bテーブルにはidしかなく、集計表には名前も欲しいので、Aテーブルから持ってきたいのです。 0251神 ◆YDp73vGOso3d 2018/04/06(金) 22:08:41.64ID:???>>250 君質問する以前の問題だよ? あと今質問受け付けてないからばいばい 0252NAME IS NULL2018/04/06(金) 22:09:44.34ID:???>>250 えーと 同じ日に2件以上の入金はないということ? 0253NAME IS NULL2018/04/06(金) 22:12:55.34ID:+EV0F8Wd>>252 ありえます。 なので、SUM[金額] GROUP BY id としたいです。 0254NAME IS NULL2018/04/06(金) 22:20:07.86ID:???>>253 そもそもテーブル設計がまずいのでは 同じ人が同じ日に同じ金額を入金したらどうなるの? 主キーは? 0255NAME IS NULL2018/04/06(金) 23:15:05.62ID:+EV0F8Wd Bテーブルにはオートナンバーのridフィールドがあります。 0256NAME IS NULL2018/04/07(土) 04:28:00.74ID:??? GROUP BY [id],[なまえ] 0257NAME IS NULL2018/04/07(土) 09:47:12.83ID:???>>248 Accessは知らんが一般的なSQLではこんな感じ
select A.id, A.なまえ, B.合計 from tblA A inner join (select id, sum(入金額) as 合計 from tblB where 入金日 between 昨日 and 明日 ) B on A.id = B.id ; 02582572018/04/07(土) 09:48:19.23ID:??? サブクエリ内にgroup by id書くの忘れた 0259NAME IS NULL2018/04/07(土) 15:34:15.71ID:???>>248 accessで作ってやったぞ これでどうだ。
SELECT tblA.ID, tblA.[なまえ], Sum(tblB.入金額) AS 入金額の合計 FROM tblA INNER JOIN tblB ON tblA.ID = tblB.ID WHERE (((tblB.入金日)>='2018-04-06' And (tblB.入金日)<='2018-04-08')) GROUP BY tblA.ID, tblA.[なまえ] ORDER BY tblA.ID; 0260NAME IS NULL2018/04/07(土) 20:09:01.50ID:???>>259 ありがとう! 0261NAME IS NULL2018/04/10(火) 10:35:12.39ID:dRsp0g4C 【シオンの議定書は反日】 『マス・レジャーとクイズを盛んに』 『あなたは極めて優秀だから寝返れ』 http://rosie.5ch.net/test/read.cgi/liveplus/1523323225/l500262NAME IS NULL2018/04/15(日) 00:36:03.26ID:???>>4 のよくある質問2で、keyに別テーブル?配列?を指定することはできますか。 (key=3など、BDにない項目のカウント結果は当然ゼロになるが、それも結果として欲しい)
DBは、Google Fusion Tablesです。 0263NAME IS NULL2018/04/15(日) 00:56:40.79ID:???>>262 具体的にテーブルの内容を例示してみて 0264NAME IS NULL2018/04/15(日) 01:11:20.64ID:??? outer joinのことを言いたいんだと思う 0265NAME IS NULL2018/04/15(日) 01:41:28.73ID:??? OUTER JOIN? …慌ててググる…そうそうそれです!
Google Fusion TablesはWHERE句で関数が使えないなどSQLはやや貧弱なのですが、 OUTER JOINはあるようなので(LEFTだけ?)勉強してやってみます。 ありがとうございました。 https://developers.google.com/fusiontables/docs/v2/sql-reference0266神 ◆YDp73vGOso3d 2018/04/15(日) 17:01:53.04ID:Bs6Qpy/T おいおいおいおいouter joinとかいう初心者以前の質問には答えて 俺の質問には答えんのかい お前らほんと捻くれてるな これだからSEとかいうオタク共はいじめたくなるんだよなあ 0267NAME IS NULL2018/04/15(日) 17:33:52.27ID:???>>58 専門学生の宿題だろこれ? 0268NAME IS NULL2018/04/19(木) 00:19:53.73ID:ACyU9sdk>>266 答えられんのはプログラマーとかゆうコーダーだろ SEとゆうのは俺様みたいな有能のことたぜボーイ! 0269NAME IS NULL2018/04/19(木) 01:05:53.36ID:pgNamYVa>>268 you? 0270NAME IS NULL2018/04/20(金) 20:42:22.38ID:cUph+NAS>>269 なんや?SE様に何か用か? 0271NAME IS NULL2018/04/28(土) 20:00:00.97ID:??? テーブル分割してidなどで紐付けるのが基本なのは分かるんですけど この値がどのidなのか毎回自分でテーブル確認してinsertするのが大変で困ってます リストボックスみたいなので'ゆうちょ'を選んだら(bank_id=)3みたいに支援してくれる機能ってSQLでできませんか? RDBMSはMySQLでLinuxのターミナル使ってます 0272NAME IS NULL2018/04/28(土) 21:05:32.03ID:??? それはSQLではなくWeb画面等使って選択させれば良いだろう 0273NAME IS NULL2018/04/28(土) 21:36:58.41ID:f64A+t1T>>271 SQLの話ではないな。 0274NAME IS NULL2018/04/28(土) 22:38:37.03ID:??? ACCESSでも使ってろ 0275NAME IS NULL2018/04/29(日) 03:58:48.45ID:uDICrjO7>>271 IDを使わず銀行名でやってみてください。
自分が経験しなければ、なぜそうした方がいいのか、わかりませんよ。 0276NAME IS NULL2018/04/29(日) 10:54:53.31ID:??? >テーブル分割してidなどで紐付けるのが基本なのは分かるんですけど
それは分かってるっていうよりメリットデメリット理解しないまま鵜呑みにしてるだけだよね。 どうせ鵜呑みにするなら教科書通りのリレーショナルDB設計から入ればいいのに。 0277NAME IS NULL2018/04/29(日) 11:08:37.04ID:??? 更新時のレコード件数を減らしたり情報の集約・一元化がメリットですよね。ざっくりとは理解してるつもりです。 ただターミナルからSQLで複数のレコードを追加するには自力でテーブル確認する必要あるのが使いづらいなと思って 0278NAME IS NULL2018/04/29(日) 11:34:58.17ID:??? select bank_id from m_bank where bank_name = ’ゆうちょ’
こんなサブクェリーを追加SQLに埋め込む 0279NAME IS NULL2018/04/29(日) 12:34:02.47ID:???>>278 こういうときに副問合せ使うんですね、使いやすそうで凄く良さそう。 早速使ってみます。 ありがとうございます。 0280NAME IS NULL2018/04/29(日) 13:38:14.58ID:uDICrjO7 マスタテーブルではないのか? 0281NAME IS NULL2018/04/29(日) 14:23:08.00ID:??? >複数のレコードを追加するには自力でテーブル確認する必要ある
これの意味が判らん 0282NAME IS NULL2018/04/29(日) 18:36:41.80ID:??? 説明下手ですみません。 初心者なのですごく初歩的な質問でした。 取り敢えずサブクエリで解決しましたが一応