Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak sortować według danych z innej tabeli?
Forum PHP.pl > Forum > Bazy danych > MySQL
MOniToR
Witam
Proszę o pomoc jak mogę sortować wyniki zapytania posługując się danymi z innej tabeli niż tabela zawierające główne dane.

Np. Mam tabele products zawierającej informacje o produktach.

  1. id producers_id name


I tabele producers z producentami produktów.

  1. id name


I chciałbym posegregować alfabetycznie listę produktów według nazw producenta. Jak mogę to zrobić?

I moje drugie podobne pytanie chciałbym tez stworzyć skrypt tagów, które będą się wyświetlać sortowane według ilości artykułów z określonym tagiem.

Czyli mam dwie tabele

tags
  1. id name

tags_articles
  1. tag_id article_id

I jak mogę posortować wyniki z tabeli tags według ilości rekordów zawierających id z tags w polu tag_id w tags_articles questionmark.gif

Dzięki za wszelka pomoc smile.gif
Mchl
Kod
SELECT p.name, pr.* FROM products AS pr INNER JOIN producers AS p ON pr.producers_id = p.id ORDER BY p.name


Kod
SELECT t.name, COUNT(t_a.*) AS ilosc FROM tags AS t INNER JOIN tags_articles AS t_a ON t_a.tag_id = t.id GROUP BY t.id ORDER BY ilosc
MOniToR
Cytat(Mchl @ 26.11.2009, 17:35:00 ) *
Kod
SELECT p.name, pr.* FROM products AS pr INNER JOIN producers AS p ON pr.producers_id = p.id ORDER BY p.name


Kod
SELECT t.name, COUNT(t_a.*) AS ilosc FROM tags AS t INNER JOIN tags_articles AS t_a ON t_a.tag_id = t.id GROUP BY t.id ORDER BY ilosc


Wielkie dzięki za zainteresowanie smile.gif Ale czy mógłbyś sprawdzić Twój kod? Bo tak średnio go rozumie, rozumiem że p = products a pr =producers, ale po co mi p.name jak chcę sortować według pr.name ? I chciałbym pobrać cały rekord produktu a nie tylko jego nazwę :/ Co oznacza "AS pr" lub "AS p"?
Mchl
AS oznacza alias, czyli zastępczą nazwę dla danej tabeli.
Kod
FROM products AS pr INNER JOIN producers AS p
czyli pr to products, a p to producers, więc chyba wszystko tak jak chcesz winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.