ここから本文です

2つのテーブルでselectと同時にcountを求めたいのですが。。。 以下のようなテー...

y1kt2003さん

2007/1/515:40:13

2つのテーブルでselectと同時にcountを求めたいのですが。。。
以下のようなテーブルが2つあります。
テーブルAとテーブルBは m_idが共通のキーになります。

【テーブルA】
・m_id
・k_name
・date



【テーブルB】
・m_id
・name



テーブルAのm_idを検索キーにしてテーブルAのk_name、dateの抽出と同時に
テーブルBのm_idの合計も行いたいと思います。
可能でしょうか?

(実行イメージ)
※検索キーの値:1002の時

m_id k_name date count(テーブルB.m_id)
1002 musashino 2006/12/01 3
1002 tatikawa 2006/11/03 2
1002 higashimurayama 2006/12/10 2
1002 nishitokyo 2006/10/30 0
1002 kodaira 2007/01/01 10

OS:Red Hat Linux ES4
DB:MySQL 4.1.20
開発言語:PHP4.3.9

以上よろしくお願いします。

補足kbluehawaiiさん の言うとおり条件が足りないようです。
もう少し整理してから連絡します。

回答いただいた皆様、申し訳ありません。

閲覧数:
10,844
回答数:
4
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

zakky_777さん

2007/1/515:50:43

select
m_id,
k_name,
date,
(select count(m_id) from table_b where m_id = :0)
from table_a
where m_id = :0
order by m_id;

みたいな感じでどうですか?
count(*)でも出来ますが危険なんで、m_idをカウントしてます。
:0 はバインド変数です。

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

kuresonmanさん

2007/1/516:17:15

select A.m_id, A.k_name, A.date, B.n from テーブルA A, {SQLテーブルB} B where A.m_id = B.m_id
{SQLテーブルB}は、→select m_id, count(name) n from テーブルB group by m_id
で、置き換えて下さい。

france761さん

2007/1/516:15:09

SELECT A.m_id, A.k_name, A.date, B.cnt
FROM Aテーブル LEFT JOIN (SELECT m_id, count(m_id) cnt FROM Bテーブル GROUP BY m_id) B
ON A.m_id = B.m_id

以上でどうでしょうか?

kbluehawaiiさん

2007/1/515:57:39

テーブルBのカウントをキーとなるm_id(1002)で検索すると
全て同じ件数になるので、実行イメージどおりにはならないと思うのですが・・
何か記述し忘れている事はありませんか?

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。