首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL - UNION,UNION,INTERSECT,除外

SQL - UNION,UNION,INTERSECT,除外
EN

Stack Overflow用户
提问于 2014-05-31 05:45:42
回答 2查看 4.9K关注 0票数 2

我正在使用GalaXQL学习SQL,但找不出以下问题:

构建一个从行星返回starids的查询。对于列表中的每一个starid ( x ),应该选择starids (X):-应该存在一个有三倍x的星,但不应该存在一个有starid x的行星。只使用行星表中的starid:s。

除了使用UNION、UNION、INTERSECT之外,还有什么查询可以完成这个任务呢?请在你的回答中消化这一点,因为我是初学者。提前谢谢你!

以下是数据库模式:

代码语言:javascript
复制
CREATE TABLE stars (starid INTEGER PRIMARY KEY,
                    name TEXT,
                    x DOUBLE NOT NULL,
                    y DOUBLE NOT NULL,
                    z DOUBLE NOT NULL,
                    class INTEGER NOT NULL,
                    intensity DOUBLE NOT NULL);

CREATE TABLE hilight (starid INTEGER UNIQUE);

CREATE TABLE planets (planetid INTEGER PRIMARY KEY,
                      starid INTEGER NOT NULL,
                      orbitdistance DOUBLE NOT NULL,
                      name TEXT,
                      color INTEGER NOT NULL,
                      radius DOUBLE NOT NULL);

CREATE TABLE moons (moonid INTEGER PRIMARY KEY,
                    planetid INTEGER NOT NULL,
                    orbitdistance DOUBLE NOT NULL,
                    name TEXT,
                    color INTEGER NOT NULL,
                    radius DOUBLE NOT NULL);

CREATE INDEX planets_starid ON planets (starid);
CREATE INDEX moons_planetid ON moons (planetid);

以下是我的疑问:

代码语言:javascript
复制
SELECT planets.starid
FROM planets
UNION
SELECT starid*3 FROM planets
EXCEPT
SELECT starid*2 FROM planets
EN

回答 2

Stack Overflow用户

发布于 2014-12-01 06:43:34

有关更多详细信息,请检查链接这对我有帮助

票数 2
EN

Stack Overflow用户

发布于 2021-06-09 10:52:15

请参阅下面所有操作符的示例查询。

注意:MINUS不支持减号运算符。除了Server中的操作符外,它还等同于

代码语言:javascript
复制
SELECT name FROM Employee    /* Fetch the union of queries */
UNION
SELECT name FROM Contacts;

SELECT name FROM Employee    /* Fetch the union of queries with duplicates*/
UNION ALL
SELECT name FROM Contacts;

SELECT name FROM Employee    /* Fetch names from Employee */
EXCEPT                       /* that aren't present in contacts */
SELECT name FROM Contacts;

SELECT name FROM Employee    /* Fetch names from Employee */
INTERSECT                    /* that are present in contacts as well */
SELECT name FROM Contacts;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23966848

复制
相关文章

相似问题

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