le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Combina più tabelle in una tabella temporanea tramite collegamenti
seleziona il nome dell'intestazione dal nome della tabella 1 nome della tabella inner join 2;
seleziona * da dipendenti inner join dipartimenti
seleziona il nome dell'intestazione dal nome della tabella 1 nome della tabella inner join 2 in condizione di collegamento;
seleziona * da dipendenti inner join dipartimenti su dipendenti.dept_id = dipartimenti.dept_id;
Nella nuova tabella temporanea è possibile eseguire la seguente elaborazione
seleziona il nome dell'intestazione dal nome della tabella 1 nome della tabella di join interno 2 sulla condizione del collegamento [dove |. raggruppa per |.
seleziona * da dipendenti inner join dipartimenti su dipendenti.dept_id = dipartimenti.dept_id;
Dopo aver definito l'alias, è necessario utilizzarlo per rappresentare il nome della tabella
Interrogare lo stipendio totale di ciascun dipendente nel 2018
select name ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by name; select salary.employee_id ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by employee_id having total > 300000 order by total desc ,employee_id asc;查询2018年总工资大于30万的员工,按2018年总工资降序排列
seleziona employee_id ,basic,garde da salary inner join wage_grade su salary.basic tra wage_grade.low e wage_grade.high dove year(date)=2018 e month(date)=12;
Richiedi lo stipendio base del dipendente a dicembre 2018
seleziona garde come livello, conta (employee_id) come numero totale di persone da stipendio inner join salario_grado su stipendio.basic tra salario_grado.basso e salario_grado.alto dove anno(data)=2018 e mese(data)=12 gruppo per query garde; 2018 Numero di dipendenti al livello salariale base a dicembre
seleziona nome, base, guardia da dipendenti inner join stipendio su dipendenti.employee_id = stipendio.employee_id inner join stipendio_grado su stipendio. base tra stipendio_grado. basso e stipendio_grado. alto dove anno(data)=2018 e mese(data)=12;
I collegamenti esterni confrontano le differenze tra due tabelle
Il collegamento di sinistra utilizza i dati nella tabella di sinistra e i dati nella tabella di destra per il confronto. Il risultato di output mostra tutti i dati nell'intestazione della tabella di sinistra.
Sulla destra vengono visualizzate solo le righe corrispondenti al collegamento
seleziona il nome dell'intestazione dal nome della tabella 1 a sinistra del nome della tabella jion 2 sulla condizione del collegamento;
seleziona dept_name, nome dai dipartimenti rimasti unisciti ai dipendenti in departments.dept_id=employees.dept_id dove il nome è null;
Il collegamento a destra utilizza i dati nella tabella di destra e i dati nella tabella di sinistra per il confronto e vengono visualizzati tutti i dati nell'intestazione della tabella di destra del risultato di output.
Sulla destra vengono visualizzate solo le righe corrispondenti al collegamento
mysql> select dept_name,name from departments as d right join employees as e on d.dept_id=e.dept_id dove dept_name è null;
aggiorna i dipendenti imposta dept_id=11 dove name="bob";
Metti insieme le righe interrogate da più comandi di selezione Per più query di selezione, il numero di intestazioni di tabella deve essere coerente.
Rimosso l'output delle righe duplicate
mysql> (select date , max(basic) as stipendio from salary where date=20180110)union(select date,min(basic) from salary where date=20180110);
(seleziona comando interrogazione) union (seleziona comando interrogazione);
Output senza deduplicazione
seleziona il comando di interrogazione) unisci tutto (seleziona il comando di interrogazione);
Il comando di selezione della query contiene il comando di selezione della query
Raggruppamento di query nidificate dopo dove
seleziona il nome dell'intestazione da libreria.tabella dove simbolo del giudizio del nome dell'intestazione (seleziona il comando di query)
seleziona employee_id,date,base,bonus da stipendio dove anno(data)=2018 e mese(data)=12 e base > (seleziona base da stipendio dove anno(data)=2018 e mese(data)=12 e employee_id=100);
Dopo aver nidificato le query, utilizzare i risultati della query in () come condizioni di filtro,
seleziona il nome dell'intestazione dalla libreria.tabella con il simbolo del giudizio del nome dell'intestazione (seleziona il comando di query)
seleziona dept_id , count(name) come totale dal gruppo dipendenti per dept_id
avente totale < (
seleziona count(nome) da dipendenti dove dept_id=(
select dept_id from dipartimenti where dept_name='Dipartimento di sviluppo')
Nidifica la query dopo from e utilizza i risultati della query di () come tabella
seleziona il nome dell'intestazione da (seleziona il risultato della query) come nome della tabella temporanea dove condizione del filtro;
seleziona employee_id ,name,email,dept_name da (seleziona d.dept_name,e.* da departments come d inner join employees come e su d.dept_id=e.dept_id) come tmp_table dove dept_id=3;
Query nidificate dopo la selezione
seleziona il nome dell'intestazione, (comando seleziona query) come nome dell'intestazione da libreria.tabella dove condizione del filtro;
seleziona d.* ,(seleziona count(nome)da dipendenti come e dove d.dept_id=e.dept_id)come vumen da dipartimenti come d;