mysql - 加入多行

标签 mysql sql

我在将 2 个表连接在一起时遇到问题,如下所示

Table 'jobs'
id int(20) auto_increment PK
name varchar(200)

Table 'logs'
id int(20) auto_increment PK
job_id int(20) FK(events.id)
event varchar(200)

我想要所有具有 logs.event = 'initialized'logs.event = 'failed' 日志条目的唯一 ID

如何使用 MySQL 执行此操作?

我已经尝试过这个查询,但它不起作用(查询成功,0 个结果,而数据库中有匹配的结果)

SELECT
  a.id,
  a.name
FROM
jobs as a
RIGHT OUTER JOIN logs b ON b.job_id = a.id
WHERE
b.event = 'initialized'
AND
b.event = 'failed'

最佳答案

试试这个:

SELECT
a.id,
a.name
FROM jobs a
INNER JOIN logs b on b.jobid = a.id
WHERE
b.event = 'initialized'
AND a.id in (SELECT distinct jobid from logs WHERE event = 'failed')

关于mysql - 加入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422489/

相关文章:

sql - 在 SQL Hierarchy CTE 中显示所有子级和孙级

java - 数据库多重内连接

java - 分布式 Java 桌面应用程序 mySQL 数据库

php - 如何散列进入数据库的密码?

mysql - 选择所有子行都满足条件的父行

c# - SqlCommand.ExecuteNonQuery() 不更新我的数据库

python - 根据列值加入 Pandas 数据框

sql - 更新涉及 groupby 子句的表,同时避免使用临时表

php - 如何处理 Web 应用程序数据库中的评论

java - 如何在Java bean中存储Oracle Rowid