C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: SQLのLIKE文で可能でしょうか?


(過去ログ 95 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■56900 / inTopicNo.1)  SQLのLIKE文で可能でしょうか?
  
□投稿者/ TAKE (2回)-(2011/02/04(Fri) 12:08:29)

分類:[データベース全般] 

下記のような二つのテーブルがあり
住所でリレーションを張りたいのですが
可能でしょうか?
イメージとしては
select ID2 from テーブルA left outer join テーブルB on テーブルB.住所 like '*テーブルA.住所*'
なのですが
わかるかたおりましたら
よろしくお願いいたします。



テーブルA
ID1 住所
1 葛飾区
2 足立区


テーブルB
ID2 住所
1 東京都葛飾区奥戸
2 東京都足立区鹿浜
引用返信 編集キー/
■56902 / inTopicNo.2)  Re[1]: SQLのLIKE文で可能でしょうか?
□投稿者/ shu (409回)-(2011/02/04(Fri) 12:23:09)
No56900 (TAKE さん) に返信

> select ID2 from テーブルA left outer join テーブルB on テーブルB.住所 like '*テーブルA.住所*'
select ID2 from テーブルA left outer join テーブルB on テーブルB.住所 like '*' + テーブルA.住所 + '*'

これでどうでしょう?DBにもよります。

onの条件でかけない様ならWhere句で条件指定
引用返信 編集キー/
■56903 / inTopicNo.3)  Re[1]: SQLのLIKE文で可能でしょうか?
□投稿者/ Mira (19回)-(2011/02/04(Fri) 12:25:59)
できるかできないかはデーターベースの種類によるので何ともいえないです

テーブルB.住所 like '*' + テーブルA.住所 + '*'

こう書きかえて意図した結果になるか確認してみてください

ちなみにSQL Serverではできました(ワイルドカードは違うけど)

引用返信 編集キー/
■56904 / inTopicNo.4)  Re[2]: SQLのLIKE文で可能でしょうか?
□投稿者/ TAKE (3回)-(2011/02/04(Fri) 12:31:48)
データベースの方はSQL Serverでして
ワイルドカードを%に直して
お教えいただいた方法で上手くできました
ありがとうございます。

予備知識として
Where文での方法も教えていただければ
ありがたいです。




引用返信 編集キー/
■56905 / inTopicNo.5)  Re[3]: SQLのLIKE文で可能でしょうか?
□投稿者/ shu (410回)-(2011/02/04(Fri) 12:46:58)
No56904 (TAKE さん) に返信

> 予備知識として
> Where文での方法も教えていただければ
> ありがたいです。

SQL Serverの場合、Left JoinをWhereで表現するのは難しい為Inner Joinとして書いた場合です。
(この場合、ID2がBの項目なので特に問題はないかな?)
select ID2 from テーブルA cross join テーブルB
Where テーブルB.住所 like '%' + テーブルA.住所 + '%'


引用返信 編集キー/
■56909 / inTopicNo.6)  Re[4]: SQLのLIKE文で可能でしょうか?
□投稿者/ TAKE (4回)-(2011/02/04(Fri) 14:00:36)
返信ありがとうございます。

cross join をとりあえず勉強してみます。
引用返信 編集キー/
■56910 / inTopicNo.7)  Re[5]: SQLのLIKE文で可能でしょうか?
□投稿者/ TAKE (5回)-(2011/02/04(Fri) 14:00:42)
No56909 (TAKE さん) に返信
> 返信ありがとうございます。
>
> cross join をとりあえず勉強してみます。
引用返信 編集キー/
■57035 / inTopicNo.8)  Re[6]: SQLのLIKE文で可能でしょうか?
□投稿者/ TAKE (12回)-(2011/02/09(Wed) 14:24:23)
No56910 (TAKE さん) に返信
> ■No56909 (TAKE さん) に返信
>>返信ありがとうございます。
>>
>>cross join をとりあえず勉強してみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -