X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0101100
垢版 |
2016/09/24(土) 09:57:30.44ID:UI+2ILvZ
できました。忘れてください。
0102NAME IS NULL
垢版 |
2016/10/05(水) 22:12:12.17ID:???
mysqlで質問です。
ng_wordテーブルがあります。
テーブルには、wordカラムにキーワードが登録されています。

main_textテーブルのtextカラムの中には
テキストの文章が入っています。

もしmain_textの中にng_wordのwordが含まれていたら、取得したくないのですが、
ロジックを挟まず、sqlだけで取得できますか?
0103NAME IS NULL
垢版 |
2016/10/05(水) 22:26:56.73ID:???
WHERE main_text NOT LIKE '%word%' じゃだめだったか?
0104102
垢版 |
2016/10/05(水) 22:40:45.63ID:???
>>103
ワードが1つならそれでも良いかもしれませんが、
複数あるので…
0105NAME IS NULL
垢版 |
2016/10/06(木) 00:04:56.18ID:???
このスレ、SQL文書こうとするとエラーになる
どうしたもんかな・・・
0106NAME IS NULL
垢版 |
2016/10/06(木) 00:19:48.71ID:???
Sorry, you have been blocked
You are unable to access 2ch.net

There are several actions that could trigger this block including submitting
a certain word or phrase, a SQL command or malformed data.

SQL文を投稿しようとすると、ハッキング行為とみなされるみたい
0108NAME IS NULL
垢版 |
2016/10/06(木) 18:36:58.34ID:???
不便になったもんだな
0109NAME IS NULL
垢版 |
2016/10/16(日) 17:07:47.24ID:9/d7j9zT
>>106
まあSQLインジェクション対策なんだろうけどな。
0110NAME IS NULL
垢版 |
2016/10/16(日) 17:11:39.20ID:53yW0F3M
>>107
前の書き込みをよく見ていないけど、テーブルの結合条件もなければ、カラムのテーブル名修飾もなくてわからない。

テーブル間の関係を説明してくれ。

そもそも初めに書いたようにSQLの書き方そのものが悪い。
0111NAME IS NULL
垢版 |
2016/10/16(日) 19:59:14.27ID:???
>>102 に書いてあるだろうに、何が分からないのか分からない
0112NAME IS NULL
垢版 |
2016/10/16(日) 23:41:51.01ID:yy6enVq7
兄弟関係の抽出 と LIMIT、OFFSETに代わるもの (マルチ)

OS: Windows 10 Pro
Access Version: 2016 (2010も使用)
VBA:Excel,Powerpointのみ
VBAでの回答:否
検索キーワード:access SQL 件数 指定


http://www.accessclub.jp/bbs2/0051/beginter16860.html
「No16860.SQLで件数を指定する方法」

SELECT [電話番号] FROM [T_児童マスタ] GROUP BY [電話番号] HAVING Count(*)>1

上記2つ等を元に、次のテーブルに適応させようとしていますが、
スマートな文、クエリ(または他の手法)が思いつきません。
どうかアドバイスをお願いいたします。


T_児童マスタ

学級 氏名 電話番号
11  A  1111-11-1111
21  B 2222-22-2222
31  C 1111-11-1111
41  D 2222-22-2222
51  E 1111-11-1111
61  F 3333-33-3333



望む出力結果

学級 氏名 電話番号    兄弟学級1 兄弟氏名1 兄弟学級2 兄弟氏名2 兄弟学級3 兄弟氏名3
11  A  1111-11-1111  31     C     51     E     
21  B 2222-22-2222  41     E
31  C 1111-11-1111  11     A     51     E
41  D 2222-22-2222  21     B
51  E 1111-11-1111  11     A     31     C
61  F 3333-33-3333
0113NAME IS NULL
垢版 |
2016/10/17(月) 01:58:23.01ID:ee1NFGBS
>>102
直積で結合して、textとwordを引数にとる文字列検索関数があれば、それをWHERE句の絞り込み条件にすればできるな。
0114NAME IS NULL
垢版 |
2016/10/17(月) 07:12:12.69ID:???
>>112
兄弟の数は可変なの?
2固定なら普通にjoinすればいい
0116NAME IS NULL
垢版 |
2016/10/17(月) 07:25:17.32ID:???
堂々とマルチと宣言すれば文句言われない!キリッ
0117NAME IS NULL
垢版 |
2016/10/17(月) 07:35:53.31ID:w90R1vLK
>>112
こんな感じでいいと思う
SELECT
MM.学級 
,MM.氏名 
,MM.電話番号
,S1.学級 AS 兄弟学級1
,S1.名前 AS 兄弟氏名1
,S2.学級 AS 兄弟学級2
,S2.名前 AS 兄弟氏名2
,S3.学級 AS 兄弟学級3,
S3.名前 AS 兄弟氏名3
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
on S1.電話番号 = MM.電話番号
and S1.学級 <> MM.学級
LEFT JOIN T_児童マスタ AS S2
on S2.電話番号 = MM.電話番号
and S2.学級 <> MM.学級
and S2.学級 <> S1.学級
LEFT JOIN T_児童マスタ AS S3
on S3.電話番号 = MM.電話番号
and S3.学級 <> MM.学級
and S3.学級 <> S1.学級
and S3.学級 <> S2.学級
WHERE nz(S1.学級,999) <= nz(S2.学級,999)
and nz(S2.学級,999) <= nz(S3.学級,999)
0119NAME IS NULL
垢版 |
2016/10/17(月) 18:24:29.94ID:3tZ2amHg
>>117
ありがとうございます。
これから試してみます。
0120NAME IS NULL
垢版 |
2016/10/17(月) 19:50:25.76ID:3tZ2amHg
>>117
少し拡張してみたところ「演算子がありません」とのエラーが
出てしまいます。かなり初歩的な質問になってしまいますが、
問題点をお教えください。宜しくお願いします。


SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号  ←ここ
AND S1.学年 <> MM.学年     ←ここ
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
0121NAME IS NULL
垢版 |
2016/10/17(月) 20:30:12.67ID:3tZ2amHg
>>112 >>117 >>120
こんな感じにしてみましたが、
今度は「JOIN式はサポートされていません。」
と出てしまいます。

SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM
(
(
T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号
AND S1.学年 <> MM.学年
)
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
)
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
0122NAME IS NULL
垢版 |
2016/10/18(火) 00:34:12.50ID:???
>>121
accessでは一つのクエリではできないみたい
サブクエリ作って3段重ねで繋げてみて
0123NAME IS NULL
垢版 |
2016/10/18(火) 03:32:30.90ID:???
重複行を見付けたら一行のみ残して他を削除したいのですが、
列名などを指定せずに、
DeleteDuplicateRow テーブル名
みたいなコマンドは無いのでしょうか?
キーは有りません。
0124NAME IS NULL
垢版 |
2016/10/18(火) 11:21:45.19ID:???
その残す1行の指定はどうやって決まる?
基本的にSELECTできるものは消せる
0125NAME IS NULL
垢版 |
2016/10/18(火) 11:44:05.07ID:???
>>124
重複しているので、どれを消しても良いと思うのですが。
0126NAME IS NULL
垢版 |
2016/10/18(火) 11:49:15.77ID:???
重複って言うのは、特定のフィールドだけじゃなく
(プライマリーキー以外)全てのフィールドが同じ値になるレコード
って意味で良いのかな?
0127NAME IS NULL
垢版 |
2016/10/18(火) 11:52:11.08ID:???
>>126
そうです。
プライマリキーも設定していません。
0128NAME IS NULL
垢版 |
2016/10/18(火) 12:29:42.88ID:???
>>127
a
a
a
これを一行残して消すとか無理だろ
0131NAME IS NULL
垢版 |
2016/10/18(火) 12:36:59.34ID:???
>>128
sqlserver ならrownumber関数使えばできる
0132NAME IS NULL
垢版 |
2016/10/18(火) 12:39:09.00ID:???
>131
とりあえずMySQLです。SQL SERVERでもやりたいです。
0133NAME IS NULL
垢版 |
2016/10/18(火) 14:01:40.70ID:???
>>132
やはり他の同じ値になるレコードと区別するために
一意のカラムをつけないと削除は無理だと思います
あるいは、>>129さんのやり方でテーブル全体を作り直すのが簡単
0134NAME IS NULL
垢版 |
2016/10/18(火) 15:17:32.19ID:???
一意になるフィールドがあれば(例えばプライマリキーがあれば)、
プライマリキー以外のフィールドでグループ化し、
その上で、一番小さなプライマリキー値のリストを取得、
そのキーリスト以外の全レコードを削除、って感じでできます。
0135NAME IS NULL
垢版 |
2016/10/18(火) 17:24:15.67ID:???
RDBMSで全く同じレコードは扱うの大変だし意味ないので今後のためにキー追加するか
重複したものは登録できないようにしたほうが良さげ
0136NAME IS NULL
垢版 |
2016/10/19(水) 01:24:02.04ID:wlxzgloU
皆さん、いろいろアドバイスありがとうございました。
134さんの方式を試してみます。
重複する行を除去するような操作は普通はやらないのですか?
0137NAME IS NULL
垢版 |
2016/10/19(水) 06:20:22.91ID:???
だからその重複させるような事態そのものを発生させないようにしてるんだってば
0139NAME IS NULL
垢版 |
2016/10/19(水) 07:23:29.08ID:???
重複データ消すのに、rownumber 関数が使えればorder byが使えるので、金額が大きいのとか最新のを残すとかできて便利なんだよな
http:/sotoattanito.hatenablog.com/entry/2015/10/20/230208
0140NAME IS NULL
垢版 |
2016/10/19(水) 18:19:03.82ID:???
>>121 >>122

かなり長文になりましたが、うまくいきました。
ありがとうございました。
0141NAME IS NULL
垢版 |
2016/10/20(木) 05:26:44.31ID:???
>>140
質問だけなら長文にならないだろ
後付けの条件あるからだろ
0142NAME IS NULL
垢版 |
2016/10/25(火) 01:39:06.04ID:???
以前見たDBのER図でずっと気になってるのがあるんだが
複合主キーでテーブル繋げていくやり方って普通なんかな

例えば

「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー →
繋がる「生徒」テーブルで「生徒番号」が追加 →
「塾」テーブルでは「塾番号」が追加 →
「教室」テーブルでは「教室番号」が追加

DB連携の案件(基幹系のDBに、WebとDBが一緒になった鯖からでリンクドサーバで合体)で、その教室テーブルの先に
「塾生がどこの塾で試験申し込んだか」を突っ込むテーブルこさえてどうこうするって奴だったんだが

みたいなのとでもいうか、SQLで書くと

select *
from school inner join
(select *
  from person inner join student on
  person.name = student.name and person.tel = student.tel and
  person.gender = student.gender and person.age = student.age) as selected_student on
  selected_student.name = school.name and selected_student.tel = school.tel ... ;ごめんもう無理

みたいな奴
細部があってるかどうかは覚えてないが、だいたいそういうSQLでないと仕様がない
ER図だったから泣きながらやった

書籍を見るととりあえずID振って縛りたいのにユニーク制約らしいんだが
実際だと複合主キー使っていくんだろうか?
正直DBの設計よくわかってない下請けのアホなんで、NE〇の方が正しいのかなあ、などと疑問が
0143142
垢版 |
2016/10/25(火) 01:43:49.46ID:gb+5Pezb
正確にはプログラマーですらない事務員 orz なんか釈然としないんだが、そういうものなのかなあ、と
0144NAME IS NULL
垢版 |
2016/10/25(火) 10:09:16.25ID:???
>>142
>「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー
そもそもこれが普通じゃない

> 正直DBの設計よくわかってない
本買って読め
0145NAME IS NULL
垢版 |
2016/10/25(火) 17:32:39.12ID:???
個人で主キーに年齢含むのは普通ないとは思うが
複合キーそのものは別に珍しい物でもない

まあ、ミドル層の都合で全部にID振ろうとか言う流れも無いわけではないけどな
0146NAME IS NULL
垢版 |
2016/10/25(火) 19:09:21.76ID:???
年齢は毎年変わるだろう
キーにしたいなら、生年月日の方
0147NAME IS NULL
垢版 |
2016/10/25(火) 20:35:20.47ID:???
実は死没者名簿だったとか
0148NAME IS NULL
垢版 |
2016/10/25(火) 21:14:22.45ID:???
死没者の集まる塾の教室か
0149NAME IS NULL
垢版 |
2016/10/26(水) 03:35:36.48ID:???
>>146
17からインクリメントしない声優なら知っている
0150NAME IS NULL
垢版 |
2016/10/26(水) 08:42:54.61ID:???
現在年齢とは言ってない気がする。
0151NAME IS NULL
垢版 |
2016/10/26(水) 10:55:39.68ID:???
人によって異なる解釈を受けるような定義名は避けた方がいい
0152NAME IS NULL
垢版 |
2016/10/26(水) 23:41:52.61ID:iZaFjONH
qiitaって無能のくせにタイトルで煽って
一読すれば書き手が思い込みの激しい初心者だってわかるんだけど
多数からコメントで間違い指摘されるとクソリプがwwwwwwwと煽ったり
せやから違う場合もあるって最後に書いてるやろ日本語読めんのかバカチョンwww
みたいな臭い奴が結構混じってるけどアレなんのためにやってんの?
誤解を招くタイトルでgoogle上位になるとqiitaから金もらえるの?
0153NAME IS NULL
垢版 |
2016/10/27(木) 00:01:04.98ID:zKThEwol
てすてす
0154NAME IS NULL
垢版 |
2016/10/28(金) 12:59:25.79ID:F5E1O/a0
お邪魔いたします。
ManegementStudioでストアドプロシージャをかけるようになりたいのですが、
家庭教師をしてくださる方いらっしゃいませんでしょうか?
お礼はご相談にて。
捨てアドをさらしますので、ボランティア精神にあふれる方お待ちしております。

rirarira_01@yahoo.co.jp
0155NAME IS NULL
垢版 |
2016/10/28(金) 13:40:24.99ID:7+o0ZZYT
>>154
お礼をするというのにボランティアとはどういうことなのか?
0156NAME IS NULL
垢版 |
2016/10/28(金) 13:43:36.79ID:7+o0ZZYT
>>154
Transact-SQLの本ならあるだろ。

昔からそんなに変わってない。

Management Studioがどうこうというはどういう意味?
0157154
垢版 |
2016/10/28(金) 14:13:08.47ID:F5E1O/a0
>>155
すみません、言葉足らずでした。
お礼はするんですが、なかなかお忙しい皆様が多いかと思いますので、
不勉強な私に時間を割いてくださるボランティア精神にあふれる方を
募集しておりました。

>>156
ありがとうございます。
早速購入してみます。

一次面接を合格した企業様がManegementStudioを使用しており
(SQLserber2014)ManegementStudioを使用して、
ストアドプロシージャをかけるようになりたいので、
ManegementStudioの操作性、ストアドプロシージャの知識、
両方が必要となる感じでございます。

現在ManegementStudio勉強環境にインストールして少しずつ勉強中ですが、
二次面接まで時間がないもので、どなたかに家庭教師していただけないかと思い、
失礼ながら書き込ませていただきました。

二次面接は来週早々なので、本が届くのが先か面接が先かという風になってし舞うかと思いまし手…。

どなたかお引き受けいただけませんでしょうか?
0158NAME IS NULL
垢版 |
2016/10/28(金) 14:29:29.64ID:???
綴りの間違いは恥ずかしいから直して
企業様wもそういうのチェックするよ
0159154
垢版 |
2016/10/28(金) 14:42:22.19ID:F5E1O/a0
>>158
失礼いたしました。
注意いたします。
0160NAME IS NULL
垢版 |
2016/10/28(金) 20:18:08.51ID:???
>>157
論理構成に難があるようだけど
二次は慎重にね。
0161NAME IS NULL
垢版 |
2016/10/31(月) 06:20:51.45ID:tmLBVYkg
SQLserber?serberって何?
0162NAME IS NULL
垢版 |
2016/10/31(月) 07:34:39.53ID:???
>>161
こんな簡単な間違いもくみ取れないバカは黙ってろw
0163NAME IS NULL
垢版 |
2016/10/31(月) 13:41:48.42ID:???
その環境での開発経験が必須スキルって面接なら不合格になるべき状況だし、
そうじゃないなら環境作ることができて、足し算するだけのストアドつくれりゃあとはどうとでもなると思うよ。
0164154
垢版 |
2016/11/04(金) 10:04:18.05ID:hFXlISxO
>>160
ありがとうございます。
ありのままのスキルをお話ししてきました。

>>163
ありがとうございます。
ストアドはできれば尚可の条件なので必須ではないのですが、
出来てくれると嬉しいな、ということでしたので勉強しておりますが、
環境作るところまでしか進んでおりません。

本日結果が出るのでお世話になったお礼に結果はご報告させていただきます。
0165NAME IS NULL
垢版 |
2016/11/07(月) 18:39:43.62ID:???
サブクエリを使う場合、サブクエリも範囲を絞ることで結果扱うデータ量が減って計算時間が短くなりますが、コードの可読性が悪くなります。
なにか良いアイデアはありませんか?
0166NAME IS NULL
垢版 |
2016/11/07(月) 19:12:51.29ID:???
サブクエリを使わない
0168NAME IS NULL
垢版 |
2016/11/07(月) 22:59:55.73ID:GjWHsT4m
サブクエリエオ使ったぐらいで「コードの可読性が悪くなります。」なんてウスラバカはそしたらここに書き込む低能
0169NAME IS NULL
垢版 |
2016/11/07(月) 23:29:01.28ID:???
いっそプロシージャーにして見えなくしてしまったら?
0170NAME IS NULL
垢版 |
2016/11/08(火) 06:31:47.39ID:???
関数みたいなことは出来ないの?
0172NAME IS NULL
垢版 |
2016/12/14(水) 04:41:53.30ID:Z9OjftC8
よろしければ教えていただければと思います
変数名に使われるstrsplって何の略でしょうか?

どうにも気になってしまって
0173NAME IS NULL
垢版 |
2016/12/14(水) 08:17:11.10ID:???
string split かねぇ
ggrと strsql を案内されるな
0175NAME IS NULL
垢版 |
2016/12/15(木) 17:35:03.27ID:???
ちょっと教えて欲しいんですけど。
select * で出てくるものについて、 レコードは並び順は不定ってのは知ってるんですが、カラムの順ってのはどうなってるんですか?
create tableで定義した順?
mysqlで自分で作ったテーブルで見るとなんか定義した順みたいだけど。。。
0176NAME IS NULL
垢版 |
2016/12/15(木) 17:44:44.64ID:???
まあこれは定義した順
でもまあそういうのが気になる状況では * あまり使わないかなあ
0177NAME IS NULL
垢版 |
2016/12/15(木) 19:01:53.50ID:???
>>176
ありがとです。自分で書いているのは * の時でも全部カラム名を書くようにはしているんですが。
0178NAME IS NULL
垢版 |
2016/12/16(金) 04:41:17.71ID:???
select * で列リストが定義順でない実装は見たことがないけど
それってちゃんとSQL仕様として決まってるのか
0179NAME IS NULL
垢版 |
2016/12/16(金) 08:01:01.01ID:???
>>178
知らんけど決まってないと * 表記自体使えなくね?
insert もカラム指定なくても使えるし。
information_schema 見れば分かるのかな。
0180NAME IS NULL
垢版 |
2016/12/17(土) 02:25:18.86ID:???
列リスト指定しないinsertは*とは書かないからなぁ
information_schemaで列の定義順がみれたしても、*の出力が定義順だという保証にはならないだろ

集合論として行の順番に意味がないなら、列の順番にも意味はないような気がするけど
列の順番はデータじゃなくて定義の一部だって言われたら意味があるような気もするが
0181NAME IS NULL
垢版 |
2016/12/17(土) 21:14:23.77ID:???
>>180
select * の順番は何かしら定義されていると思うよ。そうでないと何で select * と書くことが認められているのか分からない。

insert で列リストを省略した時も values に最初に書いた値がどの列に入るか分からなかったら、何で省略できるのさって話になる。

あと列リストは組とかタプルとかいうやつで集合じゃないでしょ。こっちは順序あるし同じ値が勝手に1つにまとめられたらチョー困る。
0182NAME IS NULL
垢版 |
2016/12/24(土) 02:14:16.89ID:???
table1
code  comment
-----  -------------
A001  コメント1です
A002  コメント2です
A005  コメント5です


table2
name  code1  code2  code3
-----  ------  ------  ------
名前8  A003  A002  A007
名前3  A004  A003  A001
名前2  A008  A001  A005

があり、例えば特定のキーワード

keyword = '1です'

に comment が部分一致するような code を含む table2 の行を取り出したいのです。
この例では、
名前3
名前2
の行です。

事前にtable1でキーワードに一致するものを見付けてそれを含むtable2の列を探せば良いと思うのですが、
SQL初心者なのでとっかかりが分かりません。
どういう命令でやるべきなのかヒントを教えて下さい。
0183NAME IS NULL
垢版 |
2016/12/24(土) 04:29:21.61ID:???
ヒントをってことなんだけど、table2からA001のコードを持つ行を取得することはできるんだろうか
0184NAME IS NULL
垢版 |
2016/12/24(土) 07:36:26.32ID:???
Like と In でできるだろうけど、遅そう。
0185NAME IS NULL
垢版 |
2016/12/24(土) 09:08:19.15ID:???
>>184
そのSQLを書いて頂けませんでしょうか?
0186NAME IS NULL
垢版 |
2016/12/24(土) 09:22:17.32ID:???
ヒントじゃねーじゃん
0188NAME IS NULL
垢版 |
2016/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 NULL
垢版 |
2016/12/24(土) 12:12:04.02ID:???
ヒント like in exists
0191NAME IS NULL
垢版 |
2016/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 NULL
垢版 |
2016/12/24(土) 13:43:58.17ID:???
>>191
さんの方法で出来ました。
>>188
さんの方法も試したのですが、うまく行きませんでした。
私のやり方が悪いのかもしれません。
皆さんありがとうございました。助かりました。
0193NAME IS NULL
垢版 |
2016/12/24(土) 14:45:42.42ID:???
もう一つ教えて下さい。
>191さんの方式ですと出力が
name, code になりますが name のみにして distinct したいのですが
やり方が分かりません。
宜しくお願い致します。
0194NAME IS NULL
垢版 |
2016/12/24(土) 15:01:12.39ID:???
>>193
その通りやってますか?
select文に指定している name しか表示しないはずですけど

先頭行に distinct 加えれば重複している name は消えます。
select distinct name from table2 t2,
0195NAME IS NULL
垢版 |
2016/12/25(日) 01:34:13.09ID:G9kEUO4A
csvからphpmyadminでインポートしてるんだけど途中で止まってしまう
7000行くらいのデータが3000ちょいで切れて、その後継ぎ足しても10行程でまた切れる
あんまりsql関係ないけど原因わかる人いたら教えて
ちなみにxampp
0196NAME IS NULL
垢版 |
2016/12/25(日) 02:16:42.88ID:???
>>194
勘違いでした。
select * ...
としていました。
うまく行きました。
ちなみに>191のような
selectの中に(select ... )があるのは何ていう方式なのでしょうか?
ググルためのキーワードを教えて下さい。
0197NAME IS NULL
垢版 |
2016/12/25(日) 02:22:28.53ID:???
えっ、データベースの板に来るくらいなら、いくらなんでもサブクエリという名前くらい知っとけよ
0198NAME IS NULL
垢版 |
2016/12/25(日) 12:45:10.61ID:???
>>197
ありがとうございました。
サブクエリ、初めて耳にしました。難しいです。
一時テーブル(#テーブル)と言うやつとは違うんですか?
0199NAME IS NULL
垢版 |
2016/12/25(日) 13:04:03.09ID:???
一応ここは初心者スレって名前ついているし
ベテランから見たら知ってて当たり前と思う質問でも
優しく回答してやれよ
0200NAME IS NULL
垢版 |
2016/12/25(日) 13:37:54.49ID:GwZs/74I
>>195

php文字化けとかめんどくさいから
.Netとかでそういうのやってる
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況