首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询显示其他查询信息

问MySQL查询显示其他查询信息
EN

Stack Overflow用户
提问于 2021-11-13 17:59:44
回答 1查看 15关注 0票数 1

我的数据库中有两个表:

代码语言:javascript
复制
CREATE TABLE PAR (
    A           varchar(10) not null,
    T               varchar(25) not null,
    U               varchar(25) not null,
    V               varchar(30) not null,
    primary key (A),  
);

INSERT INTO PAR (A, T, U, V)
VALUES
('A5065','Choco','Belt','Texas'),
('B6060','Koro','Tan','Montana'),
('C2036','Beta','Blast','Washington'),
('D2000','Tao','Bet','Kentucky');



CREATE TABLE AT (
    A       varchar(10) not null,
    B               char(1),
    C       integer,
    D       varchar(20),
    primary key (A),
    foreign key (A) references PAR(A)
);

INSERT INTO AT (A, B, C, D)
VALUES
('A5065','Z','1660','Apple'),
('B6060','D','1598','Banana');

我想编写一个查询,在表AT中查找最高和最低的C值

所需的输出将如下所示:

代码语言:javascript
复制
Choco Belt 1660
Koro Tan 1598

我编写了一个查询,但不幸的是它只返回:(没有针对1660和1598值的第二列)

代码语言:javascript
复制
Choco Belt
Koro Tan

我的问题是:

代码语言:javascript
复制
SELECT CONCAT(T,' ', U) AS 'Names' from PAR
WHERE A IN ( SELECT A from AT where (C IN (SELECT MIN(C) from AT) || C IN (SELECT MAX(C) from AT)));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-13 18:14:01

您需要在select-list中指定第二列,这意味着您必须在外部查询中引用一个表。所以使用JOIN而不是IN(subquery)

代码语言:javascript
复制
SELECT CONCAT(T,' ', U) AS 'Names', AT.C
FROM PAR
JOIN AT USING (A)
WHERE AT.C IN (SELECT MIN(C) from AT) OR AT.C IN (SELECT MAX(C) from AT)

输出:

代码语言:javascript
复制
+------------+------+
| Names      | C    |
+------------+------+
| Choco Belt | 1660 |
| Koro Tan   | 1598 |
+------------+------+

提示:使用OR而不是||进行逻辑OR,因为||可以表示字符串连接,这取决于您的SQL模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69956902

复制
相关文章

相似问题

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