2016-04-16 13 views
6

Abbiamo questa query:Quali sono le differenze tra le query SQL?

SELECT t FROM articles t WHERE t.article_id = 59446 

Conosciuto anche come:

SELECT articles FROM articles WHERE articles.article_id = 59446 

Non riesco a capire

SELECT articles FROM articles 

Cosa significa? Perché funziona?

Aggiornamento: tavola 'articoli' non ha colonna 'articoli'

+0

C'è una colonna denominata 'articoli' nella tabella' articoli'? – Kevin

+0

@Kevin No, la tabella 'articoli' non ha colonna 'articoli' – Alexander

risposta

7

Questo è il risultato di un'architettura relazionale ad oggetti Postgres'. Per ogni tabella creata, esiste anche una corrispondenza composite type con lo stesso nome.

Quando si esegue

SELECT articles 
FROM articles 

si seleziona una singola colonnacon il tipoarticles dalla tabella denominata articles. Se presti molta attenzione all'output di quella query, noterai che il tuo risultato contiene solo una singola colonna in cui il valore è racchiuso tra parentesi, ad es. (1,Foobar) (se gli articoli della tabella hanno due colonne). Se si esegue select * from articles l'uscita è due colonne (e senza parentesi)

la stessa cosa succede quando si mette la lista delle colonne tra parentesi:

select (article_id, article_name) 
from articles 

restituisce anche una singola colonna con una anonymous composite type contenente due campi (questo è anche un buon esempio di "colonna" e "campo" non è la stessa cosa).

Problemi correlati