使用删除,更新,在MySQL中插入

时间:2016-05-12 19:29:01

标签: mysql

美好的一天!

首先,我是MySQL的新手,我在使用查询更改表时遇到了一些问题。

其次,对不起英语不好,不幸的是,它不是我的母语。

所以是的,我有一些问题,如果你能帮助我,我将非常感激。

我有两张桌子:Screenshot

外键是'制造'从表注册

所以,我想做的查询任务很少,但无法弄清楚如何做。

这是我做的第一项任务,我只想让你们检查,如果我做对了。

  1. 计算1月和2月的汽车制造商是大众的字段。

    SET总计= 1月+ 2月WHERE Manufact = 3;

  2. 以下是我不能做的查询:

    1. 删除有关汽车制造商的所有信息,这些信息在1月份注册的汽车数量最少。
    2. 这是我想出的。

      DELETE FROM Registered Order by January Limit 1;
      

      但它并没有删除表格'制造商的信息。

      我能在那里做什么?

      1. 到目前为止,这是最难的一个: 计算1月和2月登记的所有汽车并将其保存在附加字段中。 (应显示为Int,不带浮点。)
      2. 代码:

        ALTER TABLE Registered Add Column alltotal Int;
        UPDATE Registered
        Set alltotal = Select SUM(February + January) From Registered;
        

        我想要做的是,仅创建一个字段,其中将计算所有二月和一月字段的总和。

        到目前为止有任何建议吗?

        P.S如果我能够做到这些,我将能够自己完成其他任务:)

        P.S.2我是新来的,所以请抱歉编写错误的问题。我正如我在教程中所做的那样,但它对我来说是地狱般的。我尽力了:))

3 个答案:

答案 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