languages:
--------------------------
id | name
--------------------------
1 | polish
2 | english
articles:
--------------------------
language | ... i wiele nie innych nie istotnych w tym pytaniu
--------------------------
1 | ...
1 | ...
2 | ...
1 | ...
...
i teraz chciałbym wybrać z tablicy 'languages' id name posortowane wedłog ilosci rekortów w tablicy 'articles' gdzie pole 'language' odpowiada 'id' z tabeli 'languages'
udało mi sie napisać takie zapytanie które właściwie rozwiązuje problem
SELECT LANGUAGE, COUNT( * ) FROM articles GROUP BY LANGUAGE ORDER BY `COUNT( * )` DESC
co daje efekt:
language | count(*)
----------------------------------
2 | 7
1 | 2
lecz przydało by mi sie jeszcze w wyniku kolumna 'name' z tabeli languages
by wynik wyglądał tak:
id | name | ilosc
------------------------------------
2 | English | 7
1 | Polish | 2
na mysql'u nie znam sie za bardzo, jedynie podstawy, w sumie nigdy nie było mi nic wiecej potrzebne, az dzisiaj w ogole odkryłem ze istnieje coś takiego jak łączenie tablic itp itd
do pomocy podrzucam to z czego sam kozystałem:
SELECT name, birth, death, (YEAR(death)-YEAR(birth)) - (RIGHT(death,5)<RIGHT(birth,5)) AS age FROM pet WHERE death IS NOT NULL ORDER BY age; SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop); SELECT article, MAX(price) AS price FROM shop GROUP BY article SELECT LANGUAGE, COUNT( * ) FROM articles GROUP BY LANGUAGE 3.3.4.9. USING More Than one TABLE mysql> SELECT pet.name, -> (YEAR(date)-YEAR(birth)) - (RIGHT(date,5)<RIGHT(birth,5)) AS age, -> remark -> FROM pet INNER JOIN event -> ON pet.name = event.name -> WHERE event.type = 'litter'; mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species -> FROM pet AS p1 INNER JOIN pet AS p2 -> ON p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';
ok rozwiązałem problem na podstawie tego: http://forum.php.pl/index.php?showtopic=57...413?entry312391
SELECT p.id, p.name, count(m.LANGUAGE) AS ilosc FROM languages p LEFT OUTER JOIN articles m ON p.id = m.LANGUAGE GROUP BY p.id, p.name ORDER BY ilosc DESC
sam nie wiem jak mi sie udało

ze kolumna 'ilosc' moze pozostac 'count(*)' bo w sumie to juz nie jest takie istotne,
oraz by nie było np tych skrótów m oraz p

ok mimo iz tego w ogole nie kapuje działa
