Pobranie wszystkich kolumn z unikalnymi wartościami dla jednej kolumny i z limitem

0

Mam tabelę z komentarzami:

id_komentarza | id_artykulu | tresc | data_dodania
Chciałbym pobrać 10 ostatnio dodanych komentarzy, ale żeby dotyczyły różnych artykułów, czyli id_artykulu musi być różne dla każdego pobranego rekordu. Próbowałem z użyciem DISTINCT, ale ten eliminuje rekordy kiedy dowolna kolumna jest taka sama, GROUP BY nie pozwala pobrać kolumn których nie wpisuję w GROUP BY i nie mogę też połączyć tego polecenia z poleceniem LIMIT.

0

Użyłem tego:

SELECT *
FROM   (SELECT DISTINCT TOP 10 Country
        FROM   Customers);

tutaj: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join

Ale wyświetla tylko kolumnę Country. Jak wymienię zamiast gwiazdki kolumny słownie to wyświetla błąd

No value given for one or more required parameters.

dodanie znacznika <code class="sql"> - @furious programming

0

Coś w tym stylu:

select * from tabela where id_komentarza in (select max(id_komentarza) idkoment from tabela group by id_artykulu) order by id_komentarza desc limit 10
0

A czym jest idkoment? id_komentarza?

Dla tej bazy z w3schools zrobiłem tak:

SELECT * FROM Customers WHERE CustomerID IN (SELECT MAX(CustomerID) CustomerID FROM Customers GROUP BY Country) ORDER BY City DESC LIMIT 10

ale też wywala błąd:

 Syntax error. in query expression 'CustomerID IN (SELECT MAX(CustomerID) CustomerID FROM Customers GROUP BY Country)'.
0

Na w3 działa bez aliasu kolumny i z top zamiast limit:

SELECT top 10 * FROM Customers WHERE CustomerID IN (SELECT MAX(CustomerID) FROM Customers GROUP BY Country) ORDER BY City DESC

1 użytkowników online, w tym zalogowanych: 0, gości: 1