首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql集合代数运算

问Mysql集合代数运算
EN

Stack Overflow用户
提问于 2019-05-10 20:15:25
回答 1查看 223关注 0票数 1

我有一个不同寻常的问题,即使是我的实验室教授也不是百分之百确定它想要什么,但我会提出一些想法。给定的问题是“下面列出的查询必须使用集合代数操作来实现:找到订购产品豆腐或产品Tunnbrod的所有客户的代码”。

我的教授认为这是要求加入工会,我在其中提出了以下几点:

代码语言:javascript
复制
SELECT CUSTOMER_CODE
FROM ORDERS
WHERE CUSTOMER_CODE = ORDER_ID

UNION ALL

SELECT PRODUCT_NAME
FROM ORDER_DETAIL
WHERE PRODUCT_NAME = 'Tunnbrod' AND ‘Tofu’;

这段代码就像一个列表,只是让Tunnbrod成为一个客户代码,所以我不确定我到底需要做什么。我的教授确实提到了运算or和and操作数,在这些操作数中,我试图得到预期的结果,但失败了。

以下是供参考的表格

代码语言:javascript
复制
CREATE TABLE ORDERS
(
    ORDER_ID        DECIMAL(9)  NOT NULL,
    CUSTOMER_CODE   VARCHAR(5)  NOT NULL,
    EMPLOYEE_ID     DECIMAL(9)  NOT NULL,
    ORDER_DATE      DATE        NOT NULL,
    REQUIRED_DATE   DATE,
    SHIPPED_DATE    DATE,
    SHIP_VIA        VARCHAR(40),
    FREIGHT         DECIMAL(10,2)           DEFAULT 0,
    SHIP_NAME       VARCHAR(40),
    SHIP_ADDRESS    VARCHAR(60),
    SHIP_CITY       VARCHAR(15),
    SHIP_REGION     VARCHAR(15),
    SHIP_POSTAL_CODE    VARCHAR(10),
    SHIP_COUNTRY    VARCHAR(15),
    CONSTRAINT PK_ORDERS PRIMARY KEY (ORDER_ID),
    CONSTRAINT FK_CUSTOMER_CODE FOREIGN KEY (CUSTOMER_CODE) REFERENCES CUSTOMER(CUSTOMER_CODE),  
    CONSTRAINT FK_EMPLOYEE_ID FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID),  
    CONSTRAINT FK_SHIP_VIA FOREIGN KEY (SHIP_VIA) REFERENCES SHIPPER(COMPANY_NAME)  
);
代码语言:javascript
复制
CREATE TABLE ORDER_DETAIL
(
    ORDER_ID         DECIMAL(9) NOT NULL,
    PRODUCT_NAME     VARCHAR(40)    NOT NULL,
    UNIT_PRICE       DECIMAL(10,2)  NOT NULL    DEFAULT 0,
    QUANTITY         DECIMAL(9) NOT NULL    DEFAULT 1 ,
    DISCOUNT         DECIMAL(4,2)   NOT NULL    DEFAULT 0,
    CONSTRAINT PK_ORDER_DETAIL PRIMARY KEY (ORDER_ID, PRODUCT_NAME),
    CONSTRAINT FK_ORDER_ID FOREIGN KEY (ORDER_ID) REFERENCES ORDERS (ORDER_ID),
    CONSTRAINT FK_PRODUCT_NAME FOREIGN KEY (PRODUCT_NAME) REFERENCES PRODUCT (PRODUCT_NAME),
    CONSTRAINT CK_ORDER_DETAIL_UNIT_PRICE CHECK (UNIT_PRICE >= 0),
    CONSTRAINT CK_ORDER_DETAIL_QUANTITY CHECK (QUANTITY > 0),
    CONSTRAINT CK_ORDER_DETAIL_DISCOUNT CHECK (DISCOUNT between 0 and 1)
);
EN

回答 1

Stack Overflow用户

发布于 2019-05-10 20:26:21

对于一个原本很简单的问题,这是一个很奇怪的问题:

代码语言:javascript
复制
Select * orders inner join order_details where PRODUCT_NAME = 'Tunnbrod' OR  PRODUCT_NAME = ‘Tofu’

当然,您可以显式地使用UNION而不是OR

代码语言:javascript
复制
Select * orders inner join order_details where PRODUCT_NAME = 'Tunnbrod'
UNION
Select * orders inner join order_details where PRODUCT_NAME = ‘Tofu’ 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56077541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档