Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> znowu ja z relacjami wiele do wielu :)
dorotek
post 5.12.2005, 18:23:25
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.12.2005

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


Mam tabelę TAB1 z polami: IDTab1, nazwa, tytul;
tabelę TAB2 z polami: IDTab2, wartosc;
tabelę TAB3 z polami IDTab1, IDTab2, której zadaniem jest połączenie powyższych.
Jak zastosować SELECT aby otrzymać informacje z tabel TAB1 i TAB2 zgodnie z przyporządkowaniem okreslonym w TAB3 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
ActivePlayer
post 5.12.2005, 19:42:36
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


  1. SELECT pola
  2. FROM TAB3 LEFT JOIN TAB1 ON TAB1.IDTab1 = TAB3.IDTab1
  3. LEFT JOIN TAB2 ON TAB2.IDTab2 = TAB3.IDTab2
  4. WHERE warunki
  5. ORDER BY pole

mam nadzieje ze sie nie machnalem
Go to the top of the page
+Quote Post
dorotek
post 5.12.2005, 20:03:26
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.12.2005

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


Dzieki bardzo!
Udało się co prawda trochę inaczej, ale to też wygląda dobrze smile.gif
Za wczesnie się ucieszyłam sad.gif
Gdy w TAB2 są 2 lub więcej rekordy odpowiadające rekordom z TAB1 to wszystko wypisuje mi się 2 lub więcej razy, a ja chcę raz rekord z TAB1 i wszystkie odpowiadajace mu w TAB2.
GROUP BY nie bardzo mi pomogło sadsmiley02.gif

Ten post edytował dorotek 5.12.2005, 21:05:03
Go to the top of the page
+Quote Post
SongoQ
post 5.12.2005, 22:25:28
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@dorotek Na to nic nie poradzisz bo to iloczyn kartezjanski. Jesli masz wyszkie warunki poprawnie to co pisal @ActivePlayer to dostaniesz wszyskie dopasowania.


--------------------
Go to the top of the page
+Quote Post
dorotek
post 6.12.2005, 07:53:40
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.12.2005

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


No to mam biedę!
Czy pomoże mi ktoś tutaj czy muszę przejść na drugie forum, żeby dowiedzieć się czy i jak ten problem da się rozwiązać w php?
(na pewno się da)
Go to the top of the page
+Quote Post
ActivePlayer
post 6.12.2005, 08:52:22
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


Cytat
znowu ja z relacjami wiele do wielu smile.gif

i potem...
Cytat
ja chcę raz rekord z TAB1 i wszystkie odpowiadajace mu w TAB2.


to raczej nie relaca n do n tylko 1 do n
Go to the top of the page
+Quote Post
dorotek
post 6.12.2005, 09:03:26
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.12.2005

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


Ja mówię tylko o fragmencie moich zachcianek
Jednemy elementowi z TAB1 można przyporządkować wiele z TAB2 ale też każdy z TAB2 może odpowiadać kilku elementom z TAB1.
Kwestia tego co mnie interesuje w tym zapytanu smile.gif
Go to the top of the page
+Quote Post
SongoQ
post 6.12.2005, 10:04:08
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Przeciez juz pisalem, daje Ci wszystkie dopasowania rekordow.
Przyklad:

Tab1
aid | a1 | a2
1 | aaa| bbb
2 | bbb| cccc

Tab2
bid | b1 | b2
1 | ccc| ddd
2 | ddd| eeee

Przyjmijmy ze takie wpisy sa w tabeli:
Tab3
id | id_tab1| id_tab2
1 | 1 | 1
2 | 1 | 2
3 | 2 | 2

Teraz zapytanie:
  1. SELECT *
  2. FROM Tab1, Tab2, Tab3
  3. WHERE Tab1.id = Tab3.id_tab1 AND Tab2.id = Tab3.id_tab2


Wynikiem jest zlaczenie i dopasowanie wszystkich rekordow. Nie bede juz pisal co daje to zapytanie, mozesz sobie sprawdzic.

Tak juz jest jesli Ci sie to podoba czy nie. Polecam przeczytac przynajmniej jedna ksiazke o algebrze relacji, bo to sa podstawy.

--- Dodane
Jesli chcesz aby ktos Ci napisal rozwiazanie to na prostych przykladach podaj co chesz jako wynik zapytania.


--------------------
Go to the top of the page
+Quote Post
dorotek
post 6.12.2005, 10:16:21
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.12.2005

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


SongoQ jesteś potwornie nerwowy!
O relacjach wiem co nieco jak większość magistrów matematyki!
Już po raz drugi chcesz mnie potraktować bardzo niegrzecznie.
Czy masz obowiązek udzielania odpowiedzi?
Jeśli tak, to bardzo Cie przepraszam - poszukam bardziej przyjaznego forum.
Podałam dość prosty przykład trzech tabel i nazw pól ktore w nich występują, napisałam czego chcę.
W dalszym poście zapytałam też czy związków z php mogę szukać tutaj, czy powinnam zmienić forum - to zdaje się moje ostatnie pytanie, na które nie udzieliłeś odpowiedzi.
Zapytanie zaproponowane przez Ciebie przetestowałam sama już dawno - nie daje efektu, o który mi chodzi - to też chyba jest wyżej.
Proszę tych, którzy coś wiedzą na temat o pomoc, innych z tego obowiązku zwalniam.
Miłego dnia
smile.gif
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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 13:57