2つのテーブルすべてをフィルタリングして、すべてのデータを取得します

aliitascan

調査ソフトウェアのデータベースを作成しました。データベースの2つのテーブルが私がやりたいことです。2つの日付範囲と場所から平均スコアを取得し、答えのないものをnullまたは0として取得したいと思います。試してみました

SELECT
    AVG(tbAnswers.averageScore)
FROM
    tbDrivers
LEFT JOIN tbAnswers ON tbDrivers.driverId = tbAnswers.driverId
WHERE
    tbDrivers.place = 'WDC'
GROUP BY
    tbDrivers.driverId 

しかし、日付範囲を指定すると、応答なしでドライバーのデータを取得できません。

SELECT AVG(tbAnswers.averageScore)
FROM tbDrivers LEFT JOIN tbAnswers ON tbDrivers.driverId = tbAnswers.driverId
WHERE tbDrivers.place = 'WDC'
      AND answerDate BETWEEN '2018-11-28' AND '2018-12-03'
GROUP BY tbDrivers.driverId

テーブル構造: 構造

CREATE TABLE `tbAnswers` (
  `answerId` int(11) NOT NULL,
  `answerDate` date NOT NULL,
  `driverId` int(11) NOT NULL,
  `score1` int(11) NOT NULL,
  `score2` int(11) NOT NULL,
  `score3` int(11) NOT NULL,
  `averageScore` float NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `tbAnswers` (`answerId`, `answerDate`, `driverId`, `score1`, `score2`, `score3`, `averageScore`) VALUES
(10, '2018-11-28', 1032, 0, 0, 0, 0),
(11, '2018-11-29', 1032, 9, 8, 3, 6.67),
(12, '2018-11-30', 1032, 0, 3, 2, 1.67),
(13, '2018-11-30', 1035, 10, 2, 10, 7.34),
(14, '2018-11-01', 1032, 5, 5, 5, 5),
(15, '2018-12-03', 1035, 5, 5, 7, 5.67);

CREATE TABLE `tbDrivers` (
  `driverId` int(11) NOT NULL,
  `nameSurname` varchar(32) NOT NULL,
  `place` varchar(64) NOT NULL,
  `plate` varchar(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `tbDrivers` (`driverId`, `nameSurname`, `place`, `plate`) VALUES
(1032, 'Nick Oliver', 'WDC', 'B16186D'),
(1033, 'Nicholas Keller', 'WDC', 'ACG8095'),
(1034, 'Felipe Mendez', 'WDC', 'C26106E'),
(1035, 'Lowell Butler', 'WDC', '5123QK');

どうすればこの問題を解決できますか?

ケダールリマエ

この問題は、tbanswersテーブルにdriveridのレコードがないために発生します。

tbanswersにエントリを作成するか、上記のForpasによって提供されたクエリを使用するか、このクエリを使用します

SELECT tbdrivers.driverid, 
       Avg(tbanswers.averagescore) 
FROM   tbdrivers 
       LEFT JOIN tbanswers 
              ON tbdrivers.driverid = tbanswers.driverid 
WHERE  tbdrivers.place = 'WDC' 
       AND answerdate BETWEEN '2018-11-28' AND '2018-12-03' 
        OR answerdate IS NULL 
GROUP  BY tbdrivers.driverid 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのテーブルからデータを取得し、すべてのデータ要素を提供します

分類Dev

すべてのdivのデータフィルター属性を取得します

分類Dev

特定のフィールドのすべてのデータを取得します

分類Dev

xsl:for-eachを介してキーワードでフィルタリングすることにより、すべてのデータを取得します

分類Dev

SQLAlchemyのすべてのクエリのすべてのテーブルにグローバルフィルターを適用します

分類Dev

SQLは、別の行のすべての行で1つのテーブルをフィルタリングします

分類Dev

スプリングデータを使用してelasticsearchの特定のフィールドのすべての異なる値を取得します

分類Dev

データテーブルの列フィルター「すべて」ラベルを変更します

分類Dev

フィルタリングなしでテーブルのすべての行をスリック選択

分類Dev

2つのテーブルを比較し、IDに基づいてフィルタリングします

分類Dev

SQLServerでデータ型uniqueidentifierの主キーを持つすべてのテーブルを取得します

分類Dev

SQL:3つのテーブルを結合し、サブクエリで2つのテーブルのすべてのデータを表示します

分類Dev

Codeigniterアクティブレコードクラス-1つを除くすべてのフィールドをデータベースから取得します

分類Dev

Jquery Datatable は、複数のページにわたってフィルタリングされたすべてのデータを取得します

分類Dev

オブジェクトをフィルタリングし、同じ値を持つすべてのアイテムを取得しますjavascript

分類Dev

Django:1つのモデルレコードをフィルタリングして、他のモデルのすべてのレコードを表示する

分類Dev

mysqlの3つのテーブルからすべてのデータを取得します

分類Dev

R-行のフィルタリング(すべてのデータを2つの値の間に保持)

分類Dev

クエリを選択してメインテーブルと子テーブルのすべての値からデータを取得しますか?

分類Dev

すべての列でJavaScriptを使用してテキストフィールドを含むテーブルをフィルタリングする

分類Dev

1つのテーブルのデータを使用して、結合せずに2番目のテーブルをフィルタリングする

分類Dev

Laravelの雄弁なクエリを使用して、2番目のテーブルのフィールド値のグループ化に従って3つのテーブルからすべてのデータを取得するにはどうすればよいですか?

分類Dev

分度器は、フィルタリングされた列を持つすべての行を取得します

分類Dev

特定の行が1つの条件を満たすグループのすべての行をフィルタリングして返します

分類Dev

1つを除くすべての列のPandasデータフレームから外れ値をフィルタリングします

分類Dev

SQL Server:1つのテーブルからすべてのデータを取得しますが、2番目のテーブルの列の条件

分類Dev

FacebookグラフAPIはすべてのフィールドデータを取得します

分類Dev

光沢のあるデータテーブルは、フィルターを使用してすべてのデータを表示します

分類Dev

2つのテーブルを結合してSQLクエリをフィルタリングする

Related 関連記事

  1. 1

    2つのテーブルからデータを取得し、すべてのデータ要素を提供します

  2. 2

    すべてのdivのデータフィルター属性を取得します

  3. 3

    特定のフィールドのすべてのデータを取得します

  4. 4

    xsl:for-eachを介してキーワードでフィルタリングすることにより、すべてのデータを取得します

  5. 5

    SQLAlchemyのすべてのクエリのすべてのテーブルにグローバルフィルターを適用します

  6. 6

    SQLは、別の行のすべての行で1つのテーブルをフィルタリングします

  7. 7

    スプリングデータを使用してelasticsearchの特定のフィールドのすべての異なる値を取得します

  8. 8

    データテーブルの列フィルター「すべて」ラベルを変更します

  9. 9

    フィルタリングなしでテーブルのすべての行をスリック選択

  10. 10

    2つのテーブルを比較し、IDに基づいてフィルタリングします

  11. 11

    SQLServerでデータ型uniqueidentifierの主キーを持つすべてのテーブルを取得します

  12. 12

    SQL:3つのテーブルを結合し、サブクエリで2つのテーブルのすべてのデータを表示します

  13. 13

    Codeigniterアクティブレコードクラス-1つを除くすべてのフィールドをデータベースから取得します

  14. 14

    Jquery Datatable は、複数のページにわたってフィルタリングされたすべてのデータを取得します

  15. 15

    オブジェクトをフィルタリングし、同じ値を持つすべてのアイテムを取得しますjavascript

  16. 16

    Django:1つのモデルレコードをフィルタリングして、他のモデルのすべてのレコードを表示する

  17. 17

    mysqlの3つのテーブルからすべてのデータを取得します

  18. 18

    R-行のフィルタリング(すべてのデータを2つの値の間に保持)

  19. 19

    クエリを選択してメインテーブルと子テーブルのすべての値からデータを取得しますか?

  20. 20

    すべての列でJavaScriptを使用してテキストフィールドを含むテーブルをフィルタリングする

  21. 21

    1つのテーブルのデータを使用して、結合せずに2番目のテーブルをフィルタリングする

  22. 22

    Laravelの雄弁なクエリを使用して、2番目のテーブルのフィールド値のグループ化に従って3つのテーブルからすべてのデータを取得するにはどうすればよいですか?

  23. 23

    分度器は、フィルタリングされた列を持つすべての行を取得します

  24. 24

    特定の行が1つの条件を満たすグループのすべての行をフィルタリングして返します

  25. 25

    1つを除くすべての列のPandasデータフレームから外れ値をフィルタリングします

  26. 26

    SQL Server:1つのテーブルからすべてのデータを取得しますが、2番目のテーブルの列の条件

  27. 27

    FacebookグラフAPIはすべてのフィールドデータを取得します

  28. 28

    光沢のあるデータテーブルは、フィルターを使用してすべてのデータを表示します

  29. 29

    2つのテーブルを結合してSQLクエリをフィルタリングする

ホットタグ

アーカイブ