使用 2 个表查找不存在的数据

问题描述 投票:0回答:1

3张桌子:

IMAGES [IDim, title, descr, etc.]
USERS [IDus, name, surname, etc.]
OPERATION [ID, IDim, IDus, status, reserveDate, etc.]

我需要一个查询来获取 IMAGES 的所有行并添加从 OPERATION 表读取的

status
status
字段仅有时获得值
'READY'
'LOST'
(并且在那个时刻创建了 IMAGES 和 OPERATION 表之间的链接)。

我试过这个不完整和错误的查询:

SELECT i.IDim, i.title, i.descr, o.status
FROM IMAGES AS i, OPERATION AS o
WHERE i.IDim = o.IDim

这只会获取 OPERATION 表中的那些,但是有可能有些图像没有插入到那里。

一种可能性是每次在 IMAGES 中插入新项目时在 OPERATION 中创建一个引用,例如将

status
字段设置为
'NONE'
,但我想避免它。

这个怎么写?

sql left-join
1个回答
1
投票

为此你需要一个 LEFT JOIN。

JOIN 已经存在 30 年了,你真的应该开始使用它们

SELECT i.IDim, i.title, i.descr, o.status
FROM IMAGES AS i
 LEFT JOIN OPERATION AS o
ON i.IDim = o.IDim
© www.soinside.com 2019 - 2024. All rights reserved.