我正在尝试在sql中运行insert语句一段固定的时间。到目前为止,我已经尝试了这一点,它的工作,我想,但有没有办法结合这两个部分?
INSERT INTO assigns (AgencyName, ScoutID, RequestID)
SELECT AgencyName, ScoutID, RequestID
FROM employs NATURAL JOIN Scout NATURAL JOIN agency_response NATURAL JOIN Request
WHERE Answer = @option AND AgencyName = @agency_name
LIMIT 1;
这将在分配表中插入1次。但是我在表中有一个期望的极限值,它是从自然连接得到的。在这种情况下,它存储在numberofscouts中。例如,下面返回8,我想限制为8。
SELECT NumberOfScouts
FROM employs NATURAL JOIN Scout NATURAL JOIN agency_response NATURAL JOIN Request
WHERE Answer = @option AND AgencyName = @agency_name;
有没有办法从我使用的表中得到limit中使用的整数的值。我试图限制查询的上限,但它给出了语法错误。
1条答案
按热度按时间yqkkidmi1#
可以使用窗口函数:
笔记:
使用表别名,表别名是表名的缩写。
限定所有列引用,以便您和其他所有人都知道表列的来源。
使用
JOIN
与ON
/USING
所以你知道什么列用于JOIN
s。我描述
NATURAL JOIN
因为它没有为JOIN
条件。另外,我的大多数table都有createdAt
以及createdBy
会混淆所谓“自然”联接的列。