Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] połączenie 3 tabel z zawężeniem b != c, .... niezależnie czy SELECT... b != c czy b = c jest identyczny wy
AlinaMalutka
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2010

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


Popieprzyło mi się.... połączenie TRZECH tabel ale tak aby wyciągnięty był zgrupowany nr Klienta z tabeli "c" ze wszystkimi wartościami wg przedstawionuch ograniczeń -- ale najważniejsze --> nie mogą się pokazać rekordy z tabeli "b" i "c" jeżeli wartości w kolumnie Numer są identyczne....

tabela "a"

ID.|.klient.|.eMail.|.Waznosc.|.Uwagi.|
---+--------+-------+---------+-------+
1..|...57...|.e@x.xx|....84...|..fff..| <--- czyli jest bo WHERE... Wazność=84 <-- czyli jest bo a.Klient=b.Klient
2..|...47...|.g@x.xx|....17...|..ggg..| <--- czyli jest bo a.Klient=b.Klient (ale brak bo w "b" brak)
3..|...51...|.m@x.xx|....84...|..ttt..| <--- czyli jest bo WHERE... Wazność=84
4..|...77...|.r@x.xx|....84...|..uuu..| <--- czyli jest bo WHERE... Wazność=84 <-- czyli jest bo a.Klient=b.Klient
5..|...77...|.r@x.xx|....81...|..f....|
6..|...77...|.r@x.xx|....74...|..uuu..|

tabela "b"

ID.|.klient.|.data..|.Numer...|.Uwagi.|
---+--------+-------+---------+-------+
1..|...77...|.1999..|....22...|..fff..| <-- czyli jest bo a.Klient=b.Klient -- ALE NIE MA BYĆ bo b.Numar != c.Numer
2..|...47...|.2001..|....27...|..ggg..| <-- czyli jest bo a.Klient=b.Klient (ale brak bo w "a" brak)
3..|...57...|.2005..|....24...|..ttt..|
4..|...88...|.2010..|....23...|..uuu..| <-- czyli jest bo a.Klient=b.Klient -- ALE NIE MA BYĆ bo b.Numar != c.Numer
5..|...77...|.2010..|....25...|..uuu..| <-- czyli jest bo a.Klient=b.Klient

tabela "c"

ID.|.klient.|.data..|.Numer...|.Uwagi.|
---+--------+-------+---------+-------+
1..|...18...|.2010..|....22...|..fff..| <-- tu Numer powtarza się z tabelą "b" więc MA BYĆ BRAK
2..|...47...|.2010..|....23...|..ggg..| <-- tu Numer powtarza się z tabelą "b" więc MA BYĆ BRAK
3..|...51...|.2010..|....72...|..ttt..|
4..|...88...|.2010..|....74...|..uuu..|
5..|...77...|.2010..|....74...|..uuu..|



  1. $wynik = mysql_query ("SELECT a.Klient, a.eMail, a.Waznosc, b.Klient, b.Data, b.Numer, c.Klient, c.Data, c.Numer FROM a, b, c WHERE a.Waznosc = '84' AND a.Klient = b.Klient AND b.Numer != c.Numer GROUP BY c.Klient; ") or
  2. die ("błąd w pytaniu");
  3.  
  4. echo "<table CELLSPACING=0 CELLPADDING=1 BORDER=1 WIDTH=40% class=eeeee>";
  5. echo "<tr><td>...........</td></tr>";
  6.  
  7. while ($rekord = mysql_fetch_array ($wynik)) {
  8.  
  9. $recordo0 = $rekord[0];
  10. $recordo1 = $rekord[1];
  11. $recordo2 = $rekord[2];
  12. $recordo3 = $rekord[3];
  13. $recordo4 = $rekord[4];
  14. $recordo5 = $rekord[5];
  15. $recordo6 = $rekord[6];
  16. $recordo7 = $rekord[7];
  17. $recordo8 = $rekord[8];
  18.  
  19. echo "<tr><td>...........</td></tr>";
  20.  
  21. }
  22. echo "</table>";



... próbowałam w przeróżny sposób i ciągle źle... Pokazują się wszystkie razem z numerem 22 i 23 (oczywiście pomniejszone o inne zawężenia). Nie umiem zapisać tego ograniczenie. Niezależnie czy zapiszę || b.Numer != c.Numer || czy też || b.Numer = c.Numer || wynik jest identyczny... ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Spróbuj dać takie zapytanie.

  1. $wynik = mysql_query ("SELECT a.*, b.*, c.* FROM a
  2. LEFT OUTER JOIN b
  3. ON a.ID = b.ID
  4. LEFT OUTER JOIN c
  5. ON b.ID = c.ID
  6. WHERE a.Waznosc = '84'
  7. AND a.Klient = b.Klient
  8. AND b.Numer != c.Numer
  9. GROUP BY c.Klient;")





--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
AlinaMalutka
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2010

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


Nie było mnie kilka dobrych dni więc po przyjeździe z wielkim zadowoleniem zobaczyłam, że jednak ktoś próbował mi pomóc... Zaeksperymentowałam na tej podpowiedzi ale niestety nic to nie daje. W ogóle nasuwa mi się wrażenie, że w SELECT... nie działa wartość zawężenia xxxx != zzzz. Działa jak najbardziej xxxx = zzzz ale z "!=" nic mi nie wychodzi. Problem wykluczenia poprzez != dalej otwarty. Chyba coś pominęłam lub nie umiem zauważyć (może przefarbuję się na rudą to załapię ).
Jak ktoś mi podpowie to będę wdzięczna...
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: 19.08.2025 - 23:23