2016-05-12 14 views
5

Buona giornata!Utilizzo di Elimina, Aggiorna, Inserisci in MySQL

Prima di tutto, sono nuovo su MySQL e ho alcuni problemi con l'alterazione delle tabelle con query.

In secondo luogo, mi dispiace per il cattivo inglese, purtroppo, non è la mia lingua madre.

Quindi sì, ho alcune domande e sarò molto grato se riuscirai ad aiutarmi.

Ho 2 tabelle: Screenshot

chiave esterna viene 'manufact' dal tavolo Registred

Così, ho compiti query pochi che volevo fare, ma non riesco a capire come farle.

Ecco il primo compito che ho svolto, voglio solo che voi ragazzi controlliate, se l'ho fatto bene.

  1. Calcolare i campi da gennaio e febbraio in cui il costruttore automobilistico è VW.

    SET Totale = gennaio + febbraio WHERE Manufact = 3;

E qui arriva Query non posso fare:

  1. eliminare tutte le informazioni sulla casa automobilistica, che ha avuto più piccola quantità di auto registrato nel mese di gennaio.

Ecco cosa mi è venuto in mente.

DELETE FROM Registered Order by January Limit 1; 

Ma non ha eliminato le informazioni dalla tabella 'produttore'.

Cosa posso fare lì?

  1. Qui è il più difficile finora: Calcolare tutte le auto registrate in gennaio e febbraio e salvarle nel campo aggiuntivo. (Devono essere visualizzati come Int, senza virgola mobile.)

Codice:

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

Quello che ho voluto fare è, Crea solo 1 campo, in cui verrà calcolato somma di tutti i campi di febbraio e gennaio .

Qualche suggerimento fino ad ora?

P.S Se sarò in grado di fare queste, sarò in grado di completare altri task me stesso :)

P.S.2 Sono nuovo qui, quindi per favore mi dispiace per la modifica Domanda male. Sto facendo come nel tutorial che ho trovato, ma per me è infernale.Ho fatto del mio meglio :)

risposta

4

Interrompiamo questo problema per problema. Il primo è:

Elimina tutte le informazioni sul produttore di auto, che aveva il più piccolo numero di auto immatricolate a gennaio.

La prima cosa che dobbiamo fare è scrivere una sottoquery che determina quale produttore è. Possiamo farlo selezionando l'id della riga in registracija con il valore minimo per gennaio. Possiamo farlo utilizzando ORDER BY, che hai preso a:

SELECT vieglas 
FROM registracija 
ORDER BY january 
LIMIT 1; 

Ora che abbiamo che id, siamo in grado di eliminare da quella tabella utilizzando la clausola WHERE:

DELETE FROM registracija 
WHERE vieglas = (SELECT vieglas FROM (SELECT * FROM registracija) t ORDER BY january LIMIT 1); 

Per informazioni sul motivo per cui ho incluso lo SELECT * FROM registracija, vedere this answer.

di vedere un violino SQL di quella in atto, controllare questo: http://sqlfiddle.com/#!9/c81d5/1

Per la seconda parte:

calcolare tutte le auto REGISTRATI in gennaio e febbraio e salvarlo in campo aggiuntivo. (Dovrebbe essere visualizzato come Int, senza virgola mobile.)

possiamo utilizzare l'operatore di addizione insieme ad un comando di aggiornamento di mettere questo totale all'interno della colonna Total simili:

UPDATE registracija 
SET total = (january + february); 

Per SQL Fiddle dell'aggiornamento, vedere questo: http://sqlfiddle.com/#!9/f5b28/1

2

per l'eliminazione di tutti i record di che ha avuto più piccola quantità di automobili nel mese di gennaio REGISTRATI delete from 'Registracija' where 'January' =select min('January') from Registracija

+1

Utilizzare i tick indietro 'anziché le virgolette" per i nomi di tabelle e campi. –

1

Prova a seguire:

1) conteggio totale per gennaio & febbraio

SELECT (Gennaio + febbraio) come totale da Registrante dove Vieglas = 3

2) Query di eliminazione

CANCELLA DA Registrante INNER JOIN Vieglas Order By Registrant.January Limit 1