sql - 这个右连接问题的正确语法是什么?

标签 sql oracle join

我正在做作业,但无法找出“NOT IN”功能的正确语法。

该数据库是为此任务组成的一个小型保险数据库(承运人、成员(member)、雇主、计划)。我应该“列出所有运营商及其拥有的计划数量。(使用右连接或左连接)。列出载体 ID、汽车名称和计划数量。”

这是我现在写的:

SELECT carrier_id, carname, count(*) AS NoPlans
FROM carriers RIGHT JOIN plans
ON carriers.carrier_id = plans.carrierid;

当我尝试运行它时,这会引发“不是单组组函数”错误,但那是因为我认为它正在寻找 WHERE 子句,而我不知道条件应该是什么。

载体表结构:

Name                           Null     Type
------------------------------ -------- -----------
CARRIER_ID                     NOT NULL CHAR(4)
CARNAME                                 CHAR(35)
CARADDRESS                              CHAR(50)
CARCITY                                 CHAR(30)
CARSTCODE                               CHAR(2)
CARZIP                                  CHAR(10)
CARPHONE                                CHAR(10)
CARWEBSITE                              CHAR(255)
CARCONTACTFIRSTNAME                     CHAR(35)
CARCONTACTLASTNAME                      CHAR(35)
CARCONTACTEMAIL                         CHAR(255)

11 rows selected

计划表结构:

Name                           Null     Type
------------------------------ -------- -------------
PLANID                         NOT NULL NUMBER
PLNDESCRIPTION                          CHAR(35)
PLNCOST                                 NUMBER(8,2)
CARRIERID                               CHAR(4)

4 rows selected

最佳答案

SELECT carrier_id, carname, count(*) AS NoPlans 
  FROM carriers RIGHT JOIN plans 
    ON carriers.carrier_id = plans.carrierid
 GROUP BY carrier_id, carname;

关于sql - 这个右连接问题的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148187/

相关文章:

mysql - 在相关表上选择 SQL 语句

sql - 使用连接和解码在子选择中排序

sql - 两次连接表 - 在同一个表的两个不同列上

javascript - 如何通过 Azure Cosmos DB 中的存储过程查询数据库

mysql - 'CONSTRAINT 附近的语法错误

python - 在 Oracle DB 上从 python 运行 set role 命令

oracle - 根据 Visual Studio 中的环境选择 32 位或 64 位引用 dll

sql - 加入 3 个表 Oracle SQL

MySQL优化复杂查询NOT IN (2 SELECT WITH JOIN) WHERE

MYSQL:将不存在的数据加入表并求和