• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部結合+合計を出したい)

外部結合+合計を出したい

このQ&Aのポイント
  • 外部結合を使用してBsideのデータと使われた回数の合計を取得する方法について教えてください。
  • 現在のSQLでは、使われているBsideのデータのみが結果として表示されますが、使われていないデータも含めて表示する方法を教えてください。
  • SQLクエリアナライザとPHPを使用して、AsideとBsideの結合データと使われた回数の合計を表示する方法について教えてください。

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

回答のSQLをそのまま使っていますか? create table aside ( no int ) insert into aside values (1); insert into aside values (1); insert into aside values (3); insert into aside values (2); insert into aside values (1); create table bside ( no int, bname varchar(10) ) insert into bside values ( 1,'test1'); insert into bside values ( 2,'test2'); insert into bside values ( 3,'test3'); insert into bside values ( 4,'test4'); で SELECT B.No ,B.BName ,COUNT(a.no) AS Count FROM Aside AS A right JOIN Bside AS B ON A.No = B.No GROUP BY B.No ,B.BName は No BName Count ----------- ---------- ----------- 1 test1 3 2 test2 1 3 test3 1 4 test4 0 にこちらの環境ではなります。 回答の「count(a.no)」を「count(*)」や「count(b.no」にするとcountが 1になります。

azu123
質問者

お礼

nora1962さんのおっしゃる方法でできました。 変な結果になった原因は、いじっている時に間違えて「count(b.no)」にしてしまっていた事でした。 お騒がせしてすみませんでした…。 正しい書き方だけでなく、「count(*)」、「count(b.no)」など結果が1になってしまう可能性を教えてくださり、とても助かりました。 ありがとうございました!

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

SELECT B.No ,B.BName ,COUNT(a.no) AS Count FROM Aside AS A right JOIN Bside AS B ON A.No = B.No GROUP BY B.No ,B.BName では

azu123
質問者

補足

早い回答ありがとうございます! 頂いた方法を試してみたのですが、 使われていないものまでcountが1になってしまいました…使われていないものは0にしておきたいのですが、できるのでしょうか…? 考えてくださってありがとうございました!

関連するQ&A