下記2つのテーブルから検索したいのですが、SQL文を教えて下さい。
商品データからカテゴリの上4桁に「1234」がマッチする商品を扱っている
企業の会社名と電話番号を取得したいと考えています。
phpでいうと preg_match("/^1234/",$category,$match); のような感じです。
取得したい情報量は該当する全てです。
ソートして上位xx件だけ、と言うのではなく全てです。
データの順番は問いません。
重複分は不要です。
会社テーブル : office
企業ID : id
会社名 : name
電話番号 : tel
商品データ : items
商品ID : itemid
商品名 : itemname
カテゴリ : category(6桁の数字)
企業ID : id
よろしくお願いします。
select distinct office.name,office.tel from office,items where items.category like "1234%" and items.id = office.id
すみませんが、未確認ですけど、こんな感じでやればいいと思います。
下記のようにすればできます。
SELECT office.name,office.tel FROM office,items WHERE items.category LIKE "1234%" AND items.id = office.id;
ありがとうございます。
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が数値型であるなら、算術演算の方が効率がいいように思います。
ありがとうございます。
カテゴリは数値型ではないんです。
ありがとうございます。
▼追記
すみません。
重複分は不要です。と書いたのですが、
複数のカテゴリの商品を扱っている企業は
カテゴリ毎に取得したいと考えています。
office.name,office.tel の部分を下記のようにするだけで
希望通りに行きますでしょうか。
office.name,office.tel,items.category
自分で試せ。と言う話しですが.....よろしくお願いします。
▼追記
何とかできそうです。
もしわからなくなったときのために
質問をこのままにさせて下さい。