mysql - 从 2 个具有不同条件的表中选择

标签 mysql select join multi-query

我尝试了大约 2 个小时,但没有成功。这是我需要做的示例:

表格

人员:

nameA           score
---------------------
someone1        24
someone2        24
someone3        24
someone4        23
someone5        21
someone6        24
someone7        19
someone8        20
someone9        24
someone10       24

运行:

nameB           add
---------------------
someone1        s
someone2
someone2
someone4        s
someone5
someone4
someone7        s
someone8        s
someone7
someone7        s

请注意,这只是一个直观地展示我的问题的示例。无需谈论我的 table 设置。

我想知道:
首先,我需要表 people 中分数小于 24 的所有条目(到这里为止很简单)。

下一步是仅显示 people.name 在表 runs 中没有 s 的结果(我的实际问题)。

输出应该是:

name            score
---------------------
someone2        22      /*  no "s"-entry in runs        */
someone5        21      /*  also no entries             */

不幸的是我对连接不太熟悉。 这是我最后一次尝试:

SELECT nameA,score FROM runs,people WHERE people.nameA = runs.nameB
AND people.score < 24
AND runs.add != "s"
GROUP BY people.nameA

伪代码:

foreach Person in (SELECT nameA as Person,score FROM people WHERE score < 24)
SHOW name.B = Person WHERE add != "s"

我知道这很糟糕:)。但它用两行描述了我需要的内容。

如果有任何帮助,我将不胜感激。
谢谢!

最佳答案

select * from people where score<24 and 
name in (select name from runs where add!=s) and
name not in (select name from runs where add=s)

关于mysql - 从 2 个具有不同条件的表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559258/

相关文章:

php - Cron 作业到位置

mysql - 如何从 MySQL 中的电子邮件地址值返回不同的域名?

php - 使用正则表达式的复杂 SQL 查询

PHP和mysql如何使用join得到想要的结果

mysql - 转换为日期时间仅对 MySQL 中的列返回 null

php - Android 实时 map 应用程序

Python 写入 MySQL - 没有错误但没有写入

php - 构建 SQL 查询 - 一些行返回一次,一些行不返回

sql - Informix:选择空问题

c# - 如何在 C# 中进行完全外部连接?