Hi, I have this 3 table:
esame=> \d prestito
Table = prestito
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| id_libro | varchar() not null | 10 |
| id_utente | int4 not null | 4 |
| data_prestito | date | 4 |
| data_restituzione | date | 4 |
| n_gg_prestito | int4 not null | 4 |
| notifica1 | date | 4 |
| notifica2 | date | 4 |
| notifica3 | date | 4 |
+----------------------------------+----------------------------------+-------+
Table = libro
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| titolo | varchar() not null | 80 |
| id_libro | varchar() not null | 10 |
| id_utente | int4 | 4 |
| collocazione | varchar() not null | 10 |
| casa_edit | varchar() | 20 |
| data_publ | date | 4 |
| tipo | int4 | 4 |
| difetto | varchar() | 40 |
+----------------------------------+----------------------------------+-------+
Table = utente
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| cognome | varchar() not null | 20 |
| nome | varchar() | 20 |
| id_utente | int4 not null default nextval ( | 4 |
| indirizzo | varchar() | 80 |
| telefono | varchar() not null | 14 |
| tipo_utente | int4 | 4 |
| info_utente | varchar() not null | 40 |
| libri_presi | int4 | 4 |
| notifica1 | date | 4 |
| notifica2 | date | 4 |
| notifica3 | date | 4 |
| password | varchar() | 10 |
+----------------------------------+----------------------------------+-------+
Now, when I make this select:
esame=> select prestito.id_utente, libro.tipo, count(*) from prestito, libro where
libro.id_libro = prestito.id_libro group by id_utente, tipo\g
the output is (it is correct, too):
id_utente|tipo|count
---------+----+-----
9| 1| 1
19| 1| 2
19| 2| 1
(3 rows)
My question is: there is a way to join the table "utente" so to make a "select" that
return me the column "utente.cognome",too ?
i have make this try:
esame=> select utente.cognome, prestito.id_utente, libro.tipo, count(*) from prestito,
libro where libro.id_libro = prestito.id_libro and utente.id_utente =
prestito.id_utente group by id_utente, tipo\g
My question is: there is a way to join the table "utente" so to make a "select" that
return me the column "utente.cognome",too ?
i have make this try:
esame=> select utente.cognome, prestito.id_utente, libro.tipo, count(*) from prestito,
libro where libro.id_libro = prestito.id_libro and utente.id_utente =
prestito.id_utente group by id_utente, tipo\g
but the output is :
ERROR: parser: illegal use of aggregates or non-group column in target list
Or is beeter get the first select (the select without the "utente.cognome") and make a
select foreach "id_utente" so that I get "utente.cognome".
thanks in advance.
PS: I have buy this book: "The pratical sql handbook (3th edition - 1996)". How is it
?
good ? bleah?
"Il divertimento e' giusto se la scimmia ci prende gusto"
--
Pluto Linux Press: http://ziobudda.enter.it/PLP
--
Morelli 'ZioBudda' Davide Michel - Member of Pluto Linux User Group
[EMAIL PROTECTED] - http://ziobudda.enter.it/
Linux Problem? Ask to [EMAIL PROTECTED]
"/dev/ziobudda: access to /var/tmp/beer denied, use /var/adm/pineapple"