人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLについて

下記2つのテーブルから検索したいのですが、SQL文を教えて下さい。

商品データからカテゴリの上4桁に「1234」がマッチする商品を扱っている
企業の会社名と電話番号を取得したいと考えています。

phpでいうと preg_match("/^1234/",$category,$match); のような感じです。

取得したい情報量は該当する全てです。
ソートして上位xx件だけ、と言うのではなく全てです。
データの順番は問いません。
重複分は不要です。


会社テーブル : office

企業ID : id
会社名 : name
電話番号 : tel

商品データ : items

商品ID : itemid
商品名 : itemname
カテゴリ : category(6桁の数字)
企業ID : id


よろしくお願いします。

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード: Office MySQL name PHP SQL
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●60ポイント

select distinct office.name,office.tel from office,items where items.category like "1234%" and items.id = office.id

すみませんが、未確認ですけど、こんな感じでやればいいと思います。

◎質問者からの返答

ありがとうございます。

▼追記

すみません。

重複分は不要です。と書いたのですが、

複数のカテゴリの商品を扱っている企業は

カテゴリ毎に取得したいと考えています。

office.name,office.tel の部分を下記のようにするだけで

希望通りに行きますでしょうか。

office.name,office.tel,items.category

自分で試せ。と言う話しですが.....よろしくお願いします。

▼追記

何とかできそうです。

もしわからなくなったときのために

質問をこのままにさせて下さい。


2 ● yamaneroom
●10ポイント

下記のようにすればできます。

SELECT office.name,office.tel FROM office,items WHERE items.category LIKE "1234%" AND items.id = office.id;
◎質問者からの返答

ありがとうございます。


3 ● ふるるP
●10ポイント

Select category, name, tel

From items left join office

on items.id office.id

where category DIV 100 = 1234

and office.id is not null

でどうでしょうか。

categoryが数値型であるなら、算術演算の方が効率がいいように思います。

◎質問者からの返答

ありがとうございます。

カテゴリは数値型ではないんです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ