zundap
22.03.2011, 07:35:50
Witam
w jaki sposób najbardziej optymalnie wyświetlić dane z 2 tabel z jakimś warunkiem i sortowaniem ?
t1 = id,nazwa
t2 = id,nazwa
bemol
22.03.2011, 07:49:41
Jeśli się tabele nie łączą, a z tego co widzę to nie bardzo to poprostu
SELECT * FROM tab1,tab2 WHERE ... ORDER BY ... ASC
zundap
22.03.2011, 08:32:11
tylko że wynik tego mam taki
w bazie
t1
idd =1 nazwa marek
idd =2 nazwa mirek
idd =3 nazwa bartek
idd =4 nazwa franek
t1
idd =1 nazwa anna
idd =2 nazwa kasia
jak dam
SELECT * FROM t1,t2
wychodzi
1.marek anna
2.marek kasia
3.mirek anna
4.mirek kasia
5.bartek anna
6.bartek kasia
7.fanek anna
8.franek kasia
A ja chcę żeby było
1.marek
2.mirek
3.bartek
4.fanek
5 kasia
6 anna
PlayKiller
22.03.2011, 17:17:00
SELECT * FROM t1 UNION SELECT * FROM t2
zundap
24.03.2011, 08:04:03
wywala błąd
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
$result = mysql_query("SELECT * FROM t1 UNION SELECT * FROM t2");
Co tu źle
Valdi_B
24.03.2011, 09:29:57
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.
zundap
24.03.2011, 10:36:35
The used SELECT statements have a different number of columns
Masz rację wszystko działa
nospor
24.03.2011, 10:41:26
Cytat
co to znaczy
podaj jawnie listę pól do odczytu.
select t1.pole1, t1.pole2,t1.pole3.....
san32
24.03.2011, 20:01:25
select to co chcesz from t1,t2
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.