Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Wyświetlenie rekordów z 2 tabel
zundap
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.10.2005

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


Witam
w jaki sposób najbardziej optymalnie wyświetlić dane z 2 tabel z jakimś warunkiem i sortowaniem ?
t1 = id,nazwa
t2 = id,nazwa

Ten post edytował zundap 22.03.2011, 08:32:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Valdi_B
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

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


Pozwól bazie danych podpowiedzieć Ci co się dzieje:

$result = mysql_query("SELECT * FROM t1 UNION SELECT * FROM t2")
or die (mysql_error());

Inna metoda: "Wątpliwą" kwerendę wykonaj spod phpMyAdmin.
Na ogół wystarczy odczytać wyświetlony "protest" i stosownie zareagować.

Na "mojego nosa": Tabele t1 i t2 mają "niepokrywające się" atrybuty i wtedy:
1. Baza ciągnie dane z t1 - na razie OK.
2. Baza próbuje doczytać rekordy z t2.
3. Któreś kolumny z t2 "nie pasują" do listy kolumn ciągniętych z t1 i kwerenda się wywala.
Albo w t2 są jakieś "dodatkowe" atrybuty w stosunku do t1, albo odwrotnie (czegoś nie ma).
Rada: Zamiast "*" podaj jawnie listę pól do odczytu.

Jeszcze jedna uwaga: Czasem się zapomina, że UNION domyślnie eliminuje powtórzone rekordy.
Aby to zablokować zmień na UNION ALL.

Ten post edytował Valdi_B 24.03.2011, 09:46:36
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: 7.10.2025 - 18:36