Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak sortować według danych z innej tabeli?, Gdy głowna tabela ma tylko numery id rekordów z innej tabeli
MOniToR
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


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


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
MOniToR
post
Post #3





Grupa: Zarejestrowani
Postów: 182
Pomógł: 2
Dołączył: 16.11.2003
Skąd: Wrocław / Skokowa

Ostrzeżenie: (10%)
X----


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"?


--------------------
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 10:12