Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] zapytanie z dwoma tablicami
unsec
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 5.08.2011

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


Witam, prosze o pomoc w następującym problemie:

1. mamy dwie tablice

->tablica '$table_name' zawierająca dane dotyczące autorów publikacji

Kod
id, number, surname

gdzie w kolumnie 'number' podany jest kod numeryczny przypisany do danego autora (np. 10287), a w kolumnie 'surname' jego nazwisko

->tablica '$table_name2' zawierająca dane pozycji (publikacji)

Kod
id, author, language

gdzie w kolumnie 'author' podane są kody numeryczne autorów danej publikacji (oddzielone przecinkiem jeśli więcej niż 1), a w kolumnie 'language' podany jest kod języka w którym opublikowany jest artykuł (np. dla języka angielskiego to 826 a dla polskiego to 616, zawsze pojedyńczy kod)

2. w wyniku zapytania do bazy chciałbym uzyskać listę autorów ale tylko tych którzy 'popełnili' artykuł w zadanym języku. Dobrze by też było uzyskać ich ilość.

3. wykreowałem poniższe zapytanie

Kod
query("SELECT `$table_name`.*                  
                             FROM `$table_name`, `$table_name2`      
                             WHERE `$table_name`.number = `$table_name2`.author AND `$table_name2`.language = '$language'  
                             GROUP BY `$table_name`.number                                      
                             ORDER BY `$table_name`.surname ASC  
                            ");


które działa poprawnie jeśli jest tylko jeden autor publikacji, przy kilku już nie nie. Wiem dlaczego tak się dzieje ale nie potrafię skonstruować właściwego zapytania aby uwzględniło także wpisy w których jest więcej autorów niż 1.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




No chodzi o to, że masz złą strukture, ze trzymasz wszystkich autorow w jednym polu po przecinku. Tak sie nie robi. To sie robi tak:
tabela AUTOR

tabela POZYCJA - bez pola autor

tabela AUTOR_POZYCJA a w niej pola
AUTOR - wskazanie na autora
POZYCJA - wskazanie na pozycje

Dzieki takiej strukturze bez problemu robi sie wszystko
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 07:09