Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 正在尝试编写查询,但不确定要执行的操作_Mysql_Sql_Oracle - Fatal编程技术网

Mysql 正在尝试编写查询,但不确定要执行的操作

Mysql 正在尝试编写查询,但不确定要执行的操作,mysql,sql,oracle,Mysql,Sql,Oracle,我正在尝试创建一个查询,其中列出每个成员的成员id以及该成员曾经签出的图书数量。我试着这样做(我知道这是错误的): 我不知道如何创建查询。如果有人能给我一些提示,我们将不胜感激。非常感谢。下面是此查询所需的表 SQL> select * from MEMBER; ID MEMNAME ---------- --------------- 12 Randy Kaplan 4 Linda Day 9 Joo Tan SQL> SELECT * FR

我正在尝试创建一个查询,其中列出每个成员的成员id以及该成员曾经签出的图书数量。我试着这样做(我知道这是错误的):

我不知道如何创建查询。如果有人能给我一些提示,我们将不胜感激。非常感谢。下面是此查询所需的表

SQL> select * from MEMBER;

    ID MEMNAME
---------- ---------------
    12 Randy Kaplan
     4 Linda Day
     9 Joo Tan

SQL> SELECT * FROM CHECK_OUT;

DATECHKOU CAT#                 MEMID DATEDUE   DATERET
--------- --------------- ---------- --------- ---------
15-MAR-11 T 430.98 195             4 14-JUN-11 31-MAY-11
15-MAR-11 B 125.2 2013            12 14-JUN-11
27-DEC-12 T 430.98 195             4 25-MAR-13

就我所知,您离得并不远,只需要添加一个
groupby
子句,它根据
ID
进行分组,并获得每个
ID
的图书计数。大概是这样的:

SELECT MEMBER.ID, COUNT(*)
FROM MEMBER, CHECK_OUT
WHERE MEMBER.ID = CHECK_OUT.MemID
GROUP BY MEMBER.ID;

您忘记了
GROUP BY
子句

SELECT ID, COUNT(*)
FROM MEMBER
JOIN CHECK_OUT
ON MEMBER.ID = CHECK_OUT.MemID
GROUP BY ID;
这不会显示从未签出任何内容的成员。为此,您需要一个外部联接:

SELECT ID, IFNULL(COUNT(DateChkOut), 0) AS Count
FROM MEMBER
LEFT JOIN CHECK_OUT
ON MEMBER.ID = CHECK_OUT.MemID
GROUP BY ID;

这是MySQL还是ORACLE?此外,正确地设置日期,并考虑提供适当的DDL(和/或SqLoFIDLE)以及所需的结果集。谢谢。成功了。我有一段时间没做DB了。我忘了那个小组。
SELECT ID, IFNULL(COUNT(DateChkOut), 0) AS Count
FROM MEMBER
LEFT JOIN CHECK_OUT
ON MEMBER.ID = CHECK_OUT.MemID
GROUP BY ID;