Switch to full style
Forum dyskusyjne poświęcone zagadnieniom związanym z tworzeniem serwisów z wykorzystaniem zaawansowanych technologii takich jak PHP, Perl, mySQL, ASP, CGI, XML, itp.
Odpowiedz

Re: jedno zapytanie a dane z roznych tabel?

26 września 2005, o 10:39

Ostatnio edytowano 29 września 2005, o 10:55 przez RecycleIt, łącznie edytowano 1 raz

Re: jedno zapytanie a dane z roznych tabel?

26 września 2005, o 11:18

Re: jedno zapytanie a dane z roznych tabel?

26 września 2005, o 23:36

Re: jedno zapytanie a dane z roznych tabel?

27 września 2005, o 11:26

Kurde, stary... weź no sobie poczytaj o SQLu!!! NATURAL JOIN łączy dwie tabele ze sobą na podstawie kolumny, która ma identyczną nazwę w obu tabelach oraz jest kluczem głównym (ale to chyba nie jest obowiązkowe).

Mam wrażenie, że tu nie chodzi o zapytanie, tylko o wartości, albo coś innego... :\

Czy sprawdzałeś wyniki z obydwu zapytań, które proponowałem?

Nie rozmawiasz z laikiem tylko inżynierem informatyki, którego dyplom polegał na napisaniu hurtowni danych ... :)

Pzdr. Adam

Re: jedno zapytanie a dane z roznych tabel?

27 września 2005, o 23:00

tak sprawdzilem wyniki z obydwu tabel i zwracaj one prawidlowe wyniki, ale w zaden sposob nie moge skonstruowac tego zapytania zeby mi wyswietlilo te dane, moze jednak kolumna user_id musi byc przynajmniej w jednej tabeli kluczem glownym?

Re: jedno zapytanie a dane z roznych tabel?

28 września 2005, o 00:41

28 września 2005, o 10:41

28 września 2005, o 10:51

28 września 2005, o 22:59

29 września 2005, o 10:59

Heh.... czyli jednym słowem wynika z tego, że mySQL nie obsługuje poprawnie NATURAL JOIN? Analogiczne zapytanie na nieco innych tabelach w mojej bazie, wykonane dla testów, zwróciło poprawny wynik z PostgreSQLa...

A co do LEFT JOIN: 26 Wrz, 2005 - 11:39 proponowałem, żebyś pokombinował z LEFT/RIGHT JOIN. :P Zobacz teraz jakie wyniki zwróci Ci RIGHT JOIN - choćby dla zrozumienia zasady działania (tylko pobaw się ze zmianą warunków przy WHERE). :)

A zobacz jak się zmieni zapytanie, jeżeli użyjesz NATURAL LEFT JOIN zamiast LEFT JOIN ON?

Proponuję też zamiast * po SELECT wpisać jawnie nazwy pól, które będziesz wykorzystywał. No chyba, że masz zamiar użyć dokładnie wszystkich zwróconych pól dla każdego rekordu. Ograniczając ilość pobieranych danych, przyspieszasz wykonanie zapytania, skład wyników w skrypcie i oszczędzasz zasoby serwera.

Dobrze, że się udało. Bo już zaczynałem nabierać ochoty na instalację mySQLa i tworzenie Twojej bazy danych, żeby to w końcu zrobić - bo coś mi tu bylo podejrzane!
I na przyszłość masz nauczkę: wystarczy poczytać i czasem jest łątwiej niż wypytywać na forum :P

Powodzenia! :)
Odpowiedz