美好的一天!
首先,我是MySQL的新手,我在使用查询更改表时遇到了一些问题。
其次,对不起英语不好,不幸的是,它不是我的母语。
所以是的,我有一些问题,如果你能帮助我,我将非常感激。
我有两张桌子:Screenshot
外键是'制造'从表注册
所以,我想做的查询任务很少,但无法弄清楚如何做。
这是我做的第一项任务,我只想让你们检查,如果我做对了。
计算1月和2月的汽车制造商是大众的字段。
SET总计= 1月+ 2月WHERE Manufact = 3;
以下是我不能做的查询:
这是我想出的。
DELETE FROM Registered Order by January Limit 1;
但它并没有删除表格'制造商的信息。
我能在那里做什么?
代码:
ALTER TABLE Registered Add Column alltotal Int;
UPDATE Registered
Set alltotal = Select SUM(February + January) From Registered;
我想要做的是,仅创建一个字段,其中将计算所有二月和一月字段的总和。
到目前为止有任何建议吗?
P.S如果我能够做到这些,我将能够自己完成其他任务:)
P.S.2我是新来的,所以请抱歉编写错误的问题。我正如我在教程中所做的那样,但它对我来说是地狱般的。我尽力了:))
答案 0 :(得分:4)
让我们按问题解决这个问题。第一个是:
删除有关汽车制造商的所有信息,这些信息在1月份注册的汽车数量最少。
我们需要做的第一件事是编写一个子查询来确定哪个制造商。我们可以通过选择registracija
中行的id以及1月的最小值来实现。我们可以使用你发现的ORDER BY
来做到这一点:
SELECT vieglas
FROM registracija
ORDER BY january
LIMIT 1;
现在我们有了这个id,我们可以使用WHERE
子句从该表中删除:
DELETE FROM registracija
WHERE vieglas = (SELECT vieglas FROM (SELECT * FROM registracija) t ORDER BY january LIMIT 1);
有关我添加SELECT * FROM registracija
的原因的信息,请参阅this answer。
要查看有效的SQL小提琴,请查看:http://sqlfiddle.com/#!9/c81d5/1
第二部分:
计算1月和2月注册的所有汽车并将其保存在附加字段中。 (应显示为Int,不带浮点。)
我们可以使用加法运算符和更新命令将此总数放在Total
列中,如下所示:
UPDATE registracija
SET total = (january + february);
对于更新的SQL小提琴,请参阅:http://sqlfiddle.com/#!9/f5b28/1
答案 1 :(得分:2)
删除所有在1月份注册的汽车数量最少的记录delete from 'Registracija' where 'January' =select min('January') from Registracija
答案 2 :(得分:1)
请尝试以下操作:
1)1月份总数和&二月
SELECT(1月+ 2月)来自注册人,其中Vieglas = 3
2)删除查询
DELILL FROM Registrant INNER JOIN Vieglas Order by Registrant.January Limit 1