A tale scopo:
SELECT DISTINCT Content.content_name
FROM Language AS Language2
LEFT JOIN contents AS Content ON (Language2.language_id = Content.language_id)
Allora perché questo non risponde alla tua domanda?
Prendiamo in considerazione i seguenti dati (solo le prime due colonne):
content_name Name
XXXXX 1234
XXXXX 5678
SELECT DISTINCT
implica desideri solo una riga, ma cosa vuoi per il nome?
Quello che dovete fare è riscrivere il codice per utilizzare GROUP BY
e scegliere la funzione di aggregazione appropriata per le altre colonne:
SELECT
Content.content_name,
MIN(Language2.Name) AS Name,
MIN(Language2.language_id) AS language_id,
MIN(Content.id) AS id,
MIN(Content.content_description) AS content_description,
FROM
Language AS Language2
LEFT JOIN contents AS Content
ON (Language2.language_id = Content.language_id)
GROUP BY
Content.content_name
Ora, probabilmente questo non produce ciò che si vuole sia, ma una cosa è per certo, non è possibile ingannare il motore del database semplicemente "scegliere una delle righe da restituire, non mi interessa quale."
fonte
2010-04-27 11:51:39
+1 Buona risposta. Hai lasciato il gruppo disattivato per content_name? –
Sì, lo ha aggiunto ora e ha riformattato anche l'SQL. –
Anche io uso questo metodo, ma mi sento sempre sporco a farlo. MIN e MAX sono davvero la cosa giusta da fare qui? Cosa utilizzano altri database come mySQL e Oracle che consentono di selezionare una singola colonna per la parola chiave DISTINCT? Stanno facendo un MIN/MAX dietro le quinte? – emalamisura