お世話になっております。
皆様の知恵をお貸しください。
SQLクエリアナライザとPHPで作成
[Aside]
No
1
1
3
2
1
[Bside]
No BName
1 test1
2 test2
3 test3
4 test4
AsideのNoとBsideのNoが同じもので、
AsideはBsideのものが何回使われたかの記録です。
Bsideのデータ+何回使われたかの合計を出したいのです。
No BName Count
1 test1 3
2 test2 1
3 test3 1
4 test4 0
こういう表示をしたいのですが、
今書いているSQLがこういう風↓です
SELECT
B.No
,B.BName
,COUNT(*) AS Count
FROM
Aside AS A left JOIN Bside AS B ON
A.No = B.No
WHERE
A.No = B.No
GROUP BY
B.No
,B.BName
これだと
No BName Count
1 test1 3
2 test2 1
3 test3 1
使われている1・2・3だけ出て、4は出ません。
一つのSQLで、使われていない4も一緒に出す書き方を教えてください。
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
では
この回答への補足
早い回答ありがとうございます!
頂いた方法を試してみたのですが、
使われていないものまでcountが1になってしまいました…使われていないものは0にしておきたいのですが、できるのでしょうか…?
考えてくださってありがとうございました!
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になります。
nora1962さんのおっしゃる方法でできました。
変な結果になった原因は、いじっている時に間違えて「count(b.no)」にしてしまっていた事でした。
お騒がせしてすみませんでした…。
正しい書き方だけでなく、「count(*)」、「count(b.no)」など結果が1になってしまう可能性を教えてくださり、とても助かりました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Access(アクセス) MAXで0が出力される 1 2022/03/31 21:43
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Oracle SQL update方法 2 2022/06/22 14:07
- PHP PHP MySql ページング 2 2022/09/20 06:38
- TOEFL・TOEIC・英語検定 教本と辞書で意味が違いますか? 1 2022/11/18 11:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access 2000 サブクエリとJOIN
-
BULKINSERTのWITHオプションに...
-
データ突合のよい方法を教えて...
-
【SQL】指定期間の合計、MAX...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
フィルターかけた後、重複を除...
-
外部参照してるキーを主キーに...
-
SQLで特定の項目の重複のみを排...
-
for whichの使い方
-
datetime型でNULL値を入れたい。
-
SELECT 文 GROUP での1件目を...
-
前置可能な語句を含む複数の修...
-
カーソル0件の時にエラーを発生...
-
SQL Left Join で重複を排除す...
-
速度が低下し無効になったアド...
-
SQLサーバから、項目の属性(型...
-
INSERT文でフィールドの1つだ...
-
MySQLのint型で001と表示する方...
-
SQL Date型の列から年月だけを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
BULKINSERTのWITHオプションに...
-
片方のテーブルに無いデータを...
-
Access 2000 サブクエリとJOIN
-
日付型項目のNULLについて(Pos...
-
SQLServerでtime型への変換
-
VBA 100億になると#が自動...
-
【SQL】指定期間の合計、MAX...
-
データ突合のよい方法を教えて...
-
指定値を否定した条件で、NULL...
-
テーブルの結合(GROUP BY句の制...
-
プロシージャがみつかりません...
-
バッチでのバックアップに関して
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
SELECT 文 GROUP での1件目を...
-
SQLで特定の項目の重複のみを排...
-
for whichの使い方
-
外部参照してるキーを主キーに...
-
SQLServerで文字列の末尾からあ...
おすすめ情報