【发布时间】:2018-11-14 09:04:44
【问题描述】:
我正在努力解决 Laravel Eloquent 查询中的 SQL 语法问题。所以我回到了根目录,并试图让一个查询在简单的 SQL 中工作。我很难过。我不是专家,但这让我很困惑。
我看过Update with Join in SQLite 的帖子,但我认为这个帖子更多的是关于联接的问题。
我正在 SQLLite 上对此进行测试,这肯定是 SQL 的代表?
两个表:说明和已知。我想从(最新的)说明中更新 Knowns 中的一列。做对了,我可以自己解决剩下的问题(我希望!)。
-- This works fine
Select instructions.rowid from instructions
where instructions.EngagementTitle not null
-- This doesn't
UPDATE knowns
SET EngagementTitle = instructions.EngagementTitle
WHERE id IN (
SELECT knowns.id
FROM knowns
INNER JOIN instructions
ON knowns.reference = instructions.reference
)
错误信息
no such column: instructions.EngagementTitle:
UPDATE knowns
SET EngagementTitle = instructions.EngagementTitle
WHERE id IN (
SELECT knowns.id
FROM knowns
LEFT JOIN instructions
ON knowns.reference = instructions.reference
)
两个表都有列 - 三重检查。
`EngagementTitle` varchar NOT NULL
我错过了什么?
【问题讨论】:
-
如果sqllite支持
update from join,你需要一个JOIN -
在您的子查询之外,
instructions未定义。我认为您正在寻找带有连接的UPDATE,但我不确定 SQLite 是否支持 MySQL 那样的语法 -
我认为这个问题的焦点是关于 JOIN 关系的细节