MySQL 我可以在连接中计算并显示结果吗
Posted
技术标签:
【中文标题】MySQL 我可以在连接中计算并显示结果吗【英文标题】:MySQL can I in a join calculate and show the results 【发布时间】:2021-07-20 17:04:43 【问题描述】:我在第一个表中有 2 个表,我定义了可能的设备,例如消火栓或火灾报警系统,所有这些都是在一定时间内检查,在这个表中我有这些设备的名称和它们的时间是检查,在第二个表中,我有最后一次检查的日期,我想创建一个视图列表,但其中包含信息,下一次检查何时实现, 像这样
Create View listafacilitymanagemen AS
SELECT DISTINCT ID, tipo, posicion, checeo, checeo + checeointerval,
JOIN ID, tipo, checeointerval
FROM hotel.facilitymanagemen_equipo
ORDER BY checeo + checeointerval;
我的数据库非常大,我不希望它出现在“facilitymanagement”表的另一列中。
【问题讨论】:
表之间需要一个连接条件,否则会得到一个全叉积。 你不能在FROM
之前有JOIN
。
我不明白你在做什么。JOIN
后面必须跟一个表名,但 ID
、tipo
和 checeointerval
是列,而不是表。
请添加样本数据和想要的结果。
没错,这些是列
【参考方案1】:
我非常信任 w3school,在那里我找到了这个https://www.w3schools.com/sql/sql_join_inner.asp。
CREATE VIEW TABLE facilitymanagement
SELECT m.ID,
m.tipo,
e.tipo,
e.ID,
m.posicio,
m.checeo,
m.checeo + e.checeointerval,
m.checeocontrollado,
m.checeooficial,
m.checeooficial + e.checeooficialinterval,
m.checeooficialcontrollado,
m.controllero,
e.checeointerval,
e.checeooficialinterval
FROM hotel.facilitymanagemen (m)
INNER JOIN hotel.facilitymanagement_equipment (e)
ON m.tipo = e.ID
ORDER BY m.checeooficial + e.checeooficialinterval;
我是德国人,根据法律,我们要检查与火灾有关的建筑物中的设备,并由专家和负责的机构进行检查,此外,我们为所有事情提供保险,如果超出间隔,他们不要付钱,所以这个视图列表非常重要,我在上面添加了一些列“checeooficial”,这个带有间隔的列给出了 ORDER BY 标准。
如果我的代码有效,我将无法尝试。
【讨论】:
【参考方案2】:因为我有 2 个数据库,我从其中一个精确地想要 FROM 和 INNER JOIN 子句中的数据,它是数据库“酒店”。
【讨论】:
【参考方案3】:我添加了一个 WHERE 子句来过滤行,因此 VIEW TABLE 仅包含实际系统日期和我订购 DESC 之后的数据;所以最紧急的装备先出现。
CREATE VIEW TABLE facilitymanagement AS
SELECT m.ID,
m.tipo,
e.tipo,
e.ID,
m.posicio,
m.checeo,
m.checeo + e.checeointerval,
m.checeocontrollado,
m.checeooficial,
m.checeooficial + e.checeooficialinterval,
m.checeooficialcontrollado,
m.controllero,
e.checeointerval,
e.checeooficialinterval
FROM hotel.facilitymanagemen (m)
INNER JOIN hotel.facilitymanagement_equipment (e)
ON m.tipo = e.ID
WHERE m.checeooficial + e.checeooficialinterval > NOW()
ORDER BY m.checeooficial + e.checeooficialinterval DESC;
调用 CURDATE() 函数而不是 NOW() 更好。
【讨论】:
以上是关于MySQL 我可以在连接中计算并显示结果吗的主要内容,如果未能解决你的问题,请参考以下文章