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

mysql5の表結合の質問です。

テーブル名:master
フィールド名:id, name, cat_id
テーブル内容
1, 福岡, 1
3、宮崎, 1
2, 東京, 3
2, 千葉, 3

テーブル名:cat
フィールド名:cat_id, cat_name
テーブル内容
1, 九州
2, 四国
3, 関東


上記2つのテーブルをジョイントして、以下のような配列を作りたいのですがどのようにすればいいでしょうか?


配列名:area_array
cat_id, cat_name
1, 九州
3, 関東


インナージョインやレフトジョインをいろいろ試しますが思ったとおりに出力されません。
以上よろしくお願いします。

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:name インナー フィールド 九州 千葉
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tdoi
●35ポイント

こんなSQLでどうでしょう?

SELECT
 DISTINCT(cat.id) AS cat_id,
 cat.cat_name AS cat_name
FROM
 cat
 LEFT JOIN master ON cat.id = master.cat_id
WHERE
 master.id IS NOT NULL;
◎質問者からの返答

動きました^^

DISTINCTで重複を省くんですね。

初めて知りました。ありがとうございます。


2 ● fester
●35ポイント ベストアンサー

未確認ですがこちらでいかがでしょうか

SELECT cat_id, cat_name FROM cat

WHERE

EXISTS (

SELECT * FROM master

WHERE cat_id = cat.cat_id

)


◎質問者からの返答

こちらも動作を確認しました。

しかし、こんなsql文はじめてみました。

またひとつ勉強になります。ありがとうございました。

関連質問


●質問をもっと探す●



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