• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:結合したテーブルの特定カラムのカウントについて)

結合したテーブルの特定カラムのカウントについて

このQ&Aのポイント
  • PHPを学習しており、MySQLでデータベースにPDOで接続をしています。teamテーブルとmemberテーブルがあり、teamテーブルのkeywordカラムを検索条件にし、keywordカラムの値が『keyword1』と一致するteamテーブルのレコードのteamcodeカラムの値と一致する値を持つmemberテーブルのレコード数をカウントしてteamテーブルから『teamcode』、『teamname』、『teamkana』、『date』を取得し、memberテーブルでの『teamcode』の該当数を取得したいです。NULLIFやCOALESCEを使用して試してみたが、memberテーブルに該当する値が存在しないものはNULLになってしまい、取得ができなかった。
  • 結合したテーブルの特定カラムのカウント方法について質問です。PHPでMySQLのデータベースに接続しており、teamテーブルとmemberテーブルがあります。teamテーブルのkeywordカラムの値が『keyword1』と一致するteamテーブルのレコードのteamcodeと一致する値を持つmemberテーブルのレコード数をカウントして、teamテーブルから『teamcode』、『teamname』、『teamkana』、『date』を取得し、memberテーブルでの『teamcode』の該当数を取得したいです。試しにNULLIFやCOALESCEを使用しましたが、該当する値が存在しない場合はNULLになってしまいます。
  • PHPとMySQLを使って結合したテーブルの特定カラムのカウント方法について質問です。teamテーブルとmemberテーブルがある場合、teamテーブルのkeywordカラムの値が『keyword1』と一致するteamテーブルのレコードのteamcodeの値と一致する値を持つmemberテーブルのレコード数をカウントしたいです。また、teamテーブルからは『teamcode』、『teamname』、『teamkana』、『date』を取得したいです。試しに外部結合を使用しましたが、該当する値が存在しない場合はNULLになってしまいました。どのようなSQL文を使用すれば良いでしょうか?

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こんな感じ?(一部省略) //元データ create table team(teamcode int(4) unsigned zerofill not null unique,teamname varchar(20)); insert into team values(1,'team1'),(2,'team2'),(3,'team3'),(4,'team4'),(5,'team5'); create table member(membercode int(4) unsigned zerofill not null unique,teamcode int(4) unsigned zerofill,membername varchar(20)); insert into member values(1001,1,'member1'),(1002,2,'member2'),(1003,3,'member3'),(1004,2,'member4'); //検索 select t1.teamcode,t1.teamname,count(t2.membercode) as gaitou from team as t1 left join member as t2 on t1.teamcode=t2.teamcode group by t1.teamcode

mmm5orz
質問者

お礼

ご回答ありがとうございます! GROUP BYの前にWHERE句を挿入したところバッチリ欲しい結果が取得できました! すごく困っていたので感謝です!

すると、全ての回答が全文表示されます。

関連するQ&A