Ciao,
sarebbe stato meglio postare anchhe le relazioni F-Key
comunque proviamo un po... non conosco Mysql... ma un poco di sql.
allora:
codice:
1) Visualizzare i commenti ricevuti da un certo oggetto ordinandoli in ordine ascendente rispetto al campo Commentatore*/
SELECT COMB.Oggetto_Commentato,INSERZIONE.Titolo, COMB.Titolo,COMB.Commentatore, INSERZIONE.Scadenza
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB
WHERE INSERZIONE.ID_Oggetto = COMA.Oggetto_Commentato
AND COMA.Id_Commento = COMB.Id_Commento
ORDER BY INSERZIONE.Id_Oggetto DESC
LIMIT 5;SELECT COMMENTO.Commentatore, COMMENTO.Titolo, COMMENTO.Commento
FROM COMMENTO
WHERE Oggetto_Commentato = 9
ORDER BY COMMENTO.Commentatore asc;
queste mi sebrano 2 select. perche?
suppongo si ottimizare solo la prima, quindi....
codice:
1) Visualizzare i commenti ricevuti da un certo oggetto ordinandoli in ordine ascendente rispetto al campo Commentatore*/
SELECT
COMB.Oggetto_Commentato,
INSERZIONE.Titolo,
COMB.Titolo,COMB.Commentatore,
INSERZIONE.Scadenza
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB
WHERE INSERZIONE.ID_Oggetto = COMA.Oggetto_Commentato
AND COMA.Id_Commento = COMB.Id_Commento
ORDER BY INSERZIONE.Id_Oggetto DESC
LIMIT 5
a cosa serve eseguire una select attingendo dati dalla stessa tabella 2 volte e mettento nella clausola WHERE quel tipo di assegnazione???
codice:
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB
WHERE ...AND COMA.Id_Commento = COMB.Id_Commento
forse c'e' qualcosa che mi sfugge.... potresti spiegarmelo?
io farei una cosa cosi:
codice:
SELECT
COMENTO.Oggetto_Commentato,
INSERZIONE.Titolo,
COMMENTO.Titolo,
COMMENTO.Commentatore,
INSERZIONE.Scadenza
FROM INSERZIONE
LEFT JOIN COMMENTO ON COMMENTO.Oggetto_Commentato=INSERZIONE.Id_Oggetto
ORDER BY COMMENTO.Commentatore ASC
LIMIT 5
ciao