こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

2つのMySQLのテーブルをPHPで同じ行に表示

MySQL クライアントのバージョン: 5.0.45
phpMyAdmin バージョン情報: 3.2.4-rc1
でデータベースを作成しております。


簡単な例ですが、

PRIMARY=id

PHPのテーブルを下記のように表示させたい場合。
┼─┼──┼──┼
│id │add │name│
┼─┼──┼──┼
│0 │東京 │田中│
┼─┼──┼──┼
│1 │長野 │鈴木│
┼─┼──┼──┼
│2 │大阪 │佐藤│
┼─┼──┼──┼
│3 │山口 │井上│
┼─┼──┼──┼


idを共通にしていれば、
「add」はtable1、「name」はtable2の情報を
上記のように表示することは可能なのでしょうか?


もし可能であれば、この表示の仕方の名称を教えていただけないでしょうか?
(調べるときの検索ワードが分からなくて…すみません)


必要かわかりませんが、PHP上で表示する表の部分はこのように作成しています。

$result = executeQuery($sql);
$rows = mysql_num_rows($result);

if($rows){
while($row = mysql_fetch_array($recordSet)) {
$tempHtml .= "<tr>";
$tempHtml .= "<td>".$row["id"]."</td>";
$tempHtml .= "<td>".$row["add"]."</td>";
$tempHtml .= "<td>".$row["name"]."</td>";
$tempHtml .= "</tr>\n";
}
$msg = $rows."件みつかりました";
}else{
$msg = "0件です";
}



経験が浅く、お伝わりにくいことがあったら、申し訳ございません。
宜しくお願い致します。

投稿日時 - 2011-06-04 14:40:45

QNo.6785624

すぐに回答ほしいです

質問者が選んだベストアンサー

table1,table2の双方に必ずidにマッチしたadd、nameが存在するなら

SELECT table1.id,table1.add,table2.name
FROM table1,table2
WHERE table2.id = table1.id
ORDER BY table1.id

で表示されるかと思います。
検索ワードとしては、「MySQL テーブル 結合」とかかな。

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_09.htm

投稿日時 - 2011-06-04 15:36:41

補足

先にお礼に記入してしまったんでこちらで失礼します。

お教えいただいた通りでできました!!

本当にありがとうございました!!


双方ベストアンサーを差し上げれれば良いのですが・・・

投稿日時 - 2011-06-04 16:01:40

お礼

ご回答ありがとうございます!!

早速試させていただきます!!

「結合」になるんですね、
どうしても
「自分がやろうとしていること」と「結合」
とがイコールで結びつかなくて…

参照URLまでいただき、ありがとうございます!!

投稿日時 - 2011-06-04 15:45:40

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

PHPの問題というよりSQL文の書き方の問題ですね。

SELECT table1.id, table1.add, table2.name FROM table1 JOIN table2 ON table1.id = table2.id;

投稿日時 - 2011-06-04 15:34:17

補足

先にお礼に記入してしまったんでこちらで失礼します。

お教えいただいた通りでできました!!

本当にありがとうございました!!

投稿日時 - 2011-06-04 15:55:09

お礼

早速ご回答ありがとうございます!!

「JOIN」初耳でした!!
試させていただきます!!

投稿日時 - 2011-06-04 15:42:15

あなたにオススメの質問