- ベストアンサー
外部結合とカウントができない!どなたか助けてください
- ここ数日、外部結合とカウントを組み合わせたSQLが思うようにかけず大変悩んでいます。
- 学校・クラス・生徒テーブルをJOINして、合否判定数を求めたいのですが、期待する結果になりません。
- ポスグレ+PHPで、事情によりプログラム側でカウントできないため、SQLで一気に取得しなければならないのがネックです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- テーブル結合でのカウント処理
宜しくお願いします。 DATA d_id/user_id/title 1 / aaa / 海 2 / bbb / 山 3 / ccc / 河 COMMENT c_id/d_id 1 / 2 2 / 3 3 / 3 上記2つのテーブル。 DATAはユーザーの掲示板です。 COMMENTはDATAにある掲示板へのコメントです。 DATAをSELECTしながらコメント数も同時にカウントしたい場合のSQL文をご教授して頂けないでしょうか。 上記データなら、海(0件)、山(1件)、河(2件)となります。
- ベストアンサー
- MySQL
- SQL 外部結合
Access2003でSQLをかいています。 以下のように書いているのですが、 「結合式がサポートされていません」というエラーが発生します。 対応策をご存知の方、お教えいただけますでしょうか。 使用するテーブルは以下の3つです。 ・社員テーブル ・所属テーブル ・判定テーブル それぞれのテーブルの項目は以下のとおりです。 ▼ 社員テーブル ------------------- 個人No 入社年度 ▼ 所属テーブル ------------------- 個人No 所属コード ▼ 判定テーブル ------------------- 所属コード 入社年度 判定フラグ 下記のようなSQLを書いています。 --------------------------------------------------------------------- SELECT A.個人No, C.判定フラグ FROM (社員マスタ A LEFT JOIN 所属テーブル B ON (A.個人No = B.個人No)) LEFT JOIN 判定テーブル C ON (B.所属コード = C.所属コード AND A.入社年度 = C.入社年度) --------------------------------------------------------------------- 最終行の「AND A.入社年度 = C.入社年度」がなければ、SQLは実行できますが 入社年度で条件を絞れないので正しい結果になりません。 LEFT JOIN 句は3テーブル目の条件式で1テーブル目を参照できないということでしょうか?
- ベストアンサー
- その他(データベース)
- 複数テーブルの結合
マスターテーブル1つと、子テーブルが複数存在して子テーブルにはマスターテーブルのidを格納するフィールドがあり参照しなくなったときにはそのidを消去するといったデータベースがあったときにマスターIDごとに子テーブルのどれか1つでも参照していればカウントするみたいなSQLをつくりたいんですが select count(m.id) from master m inner join a on m.id = a.m_id inner join b on m.id = b.m_id inner join c on m.id = c.m_id group by m.id みたいなSQLだとAにデータが存在しなければB以降に存在しても期待した結果が出力されません。A、B、Cいずれかのm_idとマスター側のIDが等しければカウントするという出力をするためにはどのように書けばいいんでしょうか。 わかりづらい説明で申し訳ありませんがよろしくお願いします。
- ベストアンサー
- MySQL
- テーブルの結合・・・
教室テーブル id, class 1, A組 2, B組 3, C組 生徒テーブル id, name 1, 佐藤 1, 山田 2, 鈴木 3, 田中 3, 後藤 3, 加藤 という二つのテーブルがあります。 これらをLEFT JOINで結合したのですが。 A組, 佐藤 A組, 山田 B組, 鈴木 C組, 田中 C組, 後藤 C組, 加藤 となってしまいます。 これを同じ教室名でまとめて、 A組, 佐藤 山田 B組, 鈴木 C組, 田中 後藤 加藤 というように表示したいのです。 できればクエリだけで解決したいのですが・・・ よろしくお願いします。
- ベストアンサー
- MySQL
- 3つ以上の外部結合から抽出するSQL構文
次の3つのTABLEから期待する結果(結果を参照)を導きたいのですがJOIN等を使用しても期待と異なります。SQLを教えて下さい。結果は、SELECTでもVIEWでも構いません。一つのSQLでなくても構いません。 ●テーブル構成 テーブル名 - TB_A- -----TB_B--- ----TB_C---- ------ ------------- ------------- 列名 EMPNO EMPNO DATA1 EMPNO DATA2 レコード1 000001 000002 AAAAA 000001 AAAAA レコード2 000002 000002 BBBBB 000002 BBBBB レコード3 000003 000002 CCCCC 000003 CCCCC ●結果 列名 EMPNO DATA1 DATA2 レコード1 000001 ???????? AAAAA レコード2 000002 AAAAA BBBBB レコード3 000002 BBBBB ???????? レコード4 000002 CCCCC ???????? レコード5 000003 ???????? CCCCC
- 締切済み
- その他(データベース)
- access 複数フィールドを1フィールドに
Access勉強中です。 委員名簿テーブルと、いくつかの行事テーブルを結合したいのですが、上手くいきません。 どうか教えてください。 access2003です。 委員名簿テーブル クラス 生徒名1 生徒名2 生徒名3 1-1 ああ いい 1-2 かか きき くく 1-3 ささ 1-4 たた ちち つつ 行事Aテーブル 行事Bテーブル 生徒名 参加 生徒名 参加 かか true ああ false ささ true いい true ちち false きき true たた true ちち true このようなテーブルを結合して、次のようなテーブルを作りたいのです。 クラス 生徒名 行事A 行事B 1-1 ああ false 1-1 いい true 1-2 かか true 1-2 きき true 1-2 くく 1-3 ささ true 1-4 たた true 1-4 ちち false true 1-5 つつ よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- SQLの外部結合について教えて下さい
いつもお世話になっています。 SQL構文の外部結合が分らなくて困っています。 どうか教えて下さい。 JSPからString Nam = (request.getParameter("param"));で値を受け取ってその値でT_Tableと一致するデータのSQLを実行します。 SELECT * FROM T_Table where ID='"+ Nam +"' order by 日付 desc この結果とT_TableAの「番号」というフィールドと一致する問い合わせのSQLが分りません。自分なりに考えて作りましたがHTMLの部分の表示だけでレコードが表示されないので間違っているのだと思います。 色々調べてみましたが該当のサンプルがなかったので困っています。 教えて下さい!宜しくお願い致します。 【自分で作成してみたSQLです】 テーブルはSQL Serverです。 "SELECT * FROM T_Table where ID='"+ Nam +"' INNER JOIN where ID='"+ Nam +"' ON [T_Table].[番号] = [T_TableA].[番号] order by 日付 desc"
- ベストアンサー
- Java
- MySQL5でキーがないテーブルの結合はできますか?
MySQL5なのでサブクエリが使えるのですが、 A x Bのレコードを返したいのですがSQLで可能でしょうか? ■テーブルA a_id b_id 1 1 1 2 ■テーブルB c_id 1 2 ■期待する結果 a_id b_id c_id 1 1 1 1 2 2
- ベストアンサー
- MySQL
- 複数のテーブルのレコードをカウントする方法
2つのテーブルのレコード数をカウントする方法を教えてください。 $sql = "SELECT * FROM テーブル1 and テーブル2"; $res = mysql_query($sql,$myLink); $num_k = mysql_num_rows($res); こんな感じでカウントできるかと思ったのですが出来ませんでした。 宜しくお願い致します。
- ベストアンサー
- MySQL
お礼
nora1962さまありがとうございました^^ 期待するデータが得られました! 週明けのお返事となり申し訳ありません。 nora1962さまのご教授により、 SQLの知識を深めることができました、 心より感謝致しますm(_ _)m