Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Sql 连接两个表时会返回无效的编号ORA-01722_Sql_Oracle - Fatal编程技术网

Sql 连接两个表时会返回无效的编号ORA-01722

Sql 连接两个表时会返回无效的编号ORA-01722,sql,oracle,Sql,Oracle,我正在尝试返回一个客户名单,其中包含已下订单的数量。我尝试了许多不同的方法,但是在两个表之间没有公共列,其中“quantity”和“firstname”是相同的 当试图仅从“CUSTOMER”和“ORDERDETAIL”表中提取时,它返回ORA-01722“无效编号”。我要指出的是,我对这一点非常陌生,也非常落后于我应该在学习方面所处的位置。以下是表格 CREATE TABLE customer ( customerID NUMBER PRIMARY KEY, firstName VARCHAR

我正在尝试返回一个客户名单,其中包含已下订单的数量。我尝试了许多不同的方法,但是在两个表之间没有公共列,其中“quantity”和“firstname”是相同的

当试图仅从“CUSTOMER”和“ORDERDETAIL”表中提取时,它返回ORA-01722“无效编号”。我要指出的是,我对这一点非常陌生,也非常落后于我应该在学习方面所处的位置。以下是表格

CREATE TABLE customer (
customerID NUMBER PRIMARY KEY,
firstName VARCHAR2 (30) NOT NULL,
lastName VARCHAR2 (30) NOT NULL,
address VARCHAR2 (60),
city VARCHAR2 (30),
state VARCHAR2(20),
zipCode CHAR (5),
country VARCHAR2 (50),
phone CHAR (10),
email VARCHAR2 (30) NOT NULL UNIQUE,
username VARCHAR2 (20) NOT NULL UNIQUE,
password VARCHAR2 (20) NOT NULL
);

CREATE TABLE orderInfo (
orderID NUMBER PRIMARY KEY,
customerID NUMBER REFERENCES customer (customerID),
orderDate DATE,
shipDate DATE
orderDetailID NUMBER REFERENCES orderDetail (orderDetailID)
);

CREATE TABLE orderDetail (
orderDetailID NUMBER PRIMARY KEY,
orderID NUMBER REFERENCES orderInfo (orderID),
productID VARCHAR2 (10) REFERENCES product (productID),
price NUMBER (7,2),
quantity NUMBER CHECK (quantity > 0)
);

CREATE TABLE product (
productID VARCHAR2 (10) PRIMARY KEY,
categoryID VARCHAR2 (10) REFERENCES categoryInfo (categoryID),
productName VARCHAR2 (40),
productDescription VARCHAR2 (100),
unitPrice NUMBER,
picture BLOB
);

CREATE TABLE categoryInfo (
categoryID VARCHAR2 (10) PRIMARY KEY,
categoryName VARCHAR (50),
description VARCHAR2 (100)
);
当试图仅从“CUSTOMER”和“ORDERDETAIL”表中提取时,它返回ORA-01722“无效编号”

这取决于如何编写连接。虽然,正如你在文章中所说,它们没有共同的列,所以任何连接都是错误的

我正在尝试返回一个客户名单,其中包含已下订单的数量

您实际需要回答的是客户名称和每位客户的订单数量。这意味着计算ORDERINFO记录的数量。像这样:

select c.customerID ,
       c.firstName,
       c.lastName,
       count(o.orderid) no_of_orders
from orderinfo o
     join customer c
     on c.customerID = o.customerID  
group by c.customerID ,
       c.firstName,
       c.lastName
/
当试图仅从“CUSTOMER”和“ORDERDETAIL”表中提取时,它返回ORA-01722“无效编号”

这取决于如何编写连接。虽然,正如你在文章中所说,它们没有共同的列,所以任何连接都是错误的

我正在尝试返回一个客户名单,其中包含已下订单的数量

您实际需要回答的是客户名称和每位客户的订单数量。这意味着计算ORDERINFO记录的数量。像这样:

select c.customerID ,
       c.firstName,
       c.lastName,
       count(o.orderid) no_of_orders
from orderinfo o
     join customer c
     on c.customerID = o.customerID  
group by c.customerID ,
       c.firstName,
       c.lastName
/

好像你忘了发布查询。请编辑您的问题并将其包括在内。您似乎忘记发布查询。请编辑你的问题并将其包括在内。我想,我在这篇文章中读得有点过头了。我试图将“customer”表与“orderDetail”表连接起来,因为“quantity”列位于该表中——这与订单数量无关。这就是为什么我拼命想把三张桌子连接起来,其中一张没有公共列。这很好,谢谢。我想,我读了很多关于这个的文章。我试图将“customer”表与“orderDetail”表连接起来,因为“quantity”列位于该表中——这与订单数量无关。这就是为什么我拼命想把三张桌子连接起来,其中一张没有公共列。这个很好用,谢谢。