Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wnowu Joiny :) Zapytanie 3 tabele., Nie bijcie
thornag
post 27.06.2006, 13:22:42
Post #1





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Witam

Przeszukalem forum, naczytalem sie przykladow ale nie potrafie ich zastosowac do swojego problemu. Przegladnalem manual MySQL niestety nada nie moge problemu rozwiazac. Tedy nie bijcie prosze za kolejny temat dotyczacy joinow smile.gif

Otoz problem jest nastepujacy.

Trzy tabele o strukturze.

Kod
  Tabela lista_1:
  item_id | item_title | item_desc | user_id


Tabela lista_2 i lista_3 jest dokladnie taka sama.

Pytanie jak skonstruowac zapytanie podobne do tego :

  1. SELECT * FROM lista_1, lista_2, lista_3 WHERE user_id = 3


Powyzsze (oczywiscie) nie dziala, przyjmniej mnie nic nie zwrocilo ale mysle obrazuje moj problem. Pola w tabelach sa takie same wiec chcialbym zeby wzial je wszystkie i wpakowal do tymczasowej tabeli skad moglbym je wyswietlic sortujac np po dacie. Nie mam zabardzo pomyslu.
Jesli ktos zdecyduje sie pomoc prosze napisac kilka slow komentarza bo denerwuje mnie to ze nie moge tych JOINOw opanowac i zakazdym razem trzeba pytac smile.gif

Oczywiscie mozna by powiedziec, ze nalezy z trzech tabel zrobic jedna. Mozna owszem, jednakze dane roznia sie nieco, powiedzmy ze jedne dotycza koszulek druga tabela spodni a trzecia czapek (przyklady z kosmosu) wiec chce je trzymac osobno. Jesli jedyny sposob to zlozenie tabel razem od razu napisze, ze spodziewanych rekordow bedzie kilkadziesiat tysiecy. Dlatego wole je trzymac osobno. Jakis propozycje ?

Pozdrawiam.


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
nospor
post 27.06.2006, 13:27:30
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Oczywiscie mozna by powiedziec, ze nalezy z trzech tabel zrobic jedna. Mozna owszem, jednakze dane roznia sie nieco, powiedzmy ze jedne dotycza koszulek druga tabela spodni a trzecia czapek (przyklady z kosmosu) wiec chce je trzymac osobno.
Walisz dodatkowe pole TYP i ono bedzie okreslac czy to koszulka czy to czapka czy co tam innego

Cytat
ze spodziewanych rekordow bedzie kilkadziesiat tysiecy. Dlatego wole je trzymac osobno.
To zaden problem dla Mysql

Podsumowując: rozbijajac to na 3 tabele, tylko sobie zycie utrudniasz. A Twoja argumentacja do tego procederu jest marna smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thornag
post 27.06.2006, 13:32:52
Post #3





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Uooo jesli zostalo to okreslone to tutaj mianem PROCEDER to ja sie wycofuje z deklaracji ze kiedykolwiek cos takiego zrobilem tongue.gif

Coz zalezy mi na predkosci przy np 100 000 rekordow. Dobrze wiedziec ze dla MySQL to nie problem smile.gif Ide robic salatke z tabel. Wielkie dzieki smile.gif. A swoja droga istneije zapytanie ktore umozliwa zlaczenie ze saba tabel w ten sposob ?


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
nospor
post 27.06.2006, 13:34:42
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
A swoja droga istneije zapytanie ktore umozliwa zlaczenie ze saba tabel w ten sposob ?
Masz na mysli nadal swoj pierwszy problem? oczywiscie ze tak:
http://dev.mysql.com/doc/refman/5.0/en/union.html
smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thornag
post 27.06.2006, 13:36:36
Post #5





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


No tak, niedouczenie i znajomosc jedynie slowa JOIN jesli chodzi o laczenie tabel znow spowodowalo ze wykazalem sie wyjatkowa ignorancja w stosunku do manuala twierdzac ze nie znalazlem w nim odpwoiedzi smile.gif Dzieki za pomoc raz jeszcze.


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
bendi
post 27.06.2006, 13:57:22
Post #6





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(nospor @ 27.06.2006, 14:34 ) *
Masz na mysli nadal swoj pierwszy problem? oczywiscie ze tak:
http://dev.mysql.com/doc/refman/5.0/en/union.html
smile.gif

Można jeszcze zrobić tabele MERGE, ale to w sumie też UNION smile.gif


--------------------
Go to the top of the page
+Quote Post
nospor
post 27.06.2006, 14:05:09
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
is a collection of identical MyISAM
No, tylko ze te MERGE to tylko na MyIsam dzialają (a przynajmniej tak jest napisane - nie testowalem)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thornag
post 27.06.2006, 17:43:34
Post #8





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Jeszcze idac za ciosem, mam jedno pytanie odnosnie zapytac.

Schemat bazy:

Kod
TABELA staty:
POLA: id, koszulka, klikniecia, user_id


  1. <?php
  2. $result = mysql_query("SELECT klikniecia FROM staty WHERE user_id = 3")
  3.  while($row = mysql_fetch_array($result) {
  4.  $ile = $ile+$row[klikniecia];
  5. }
  6. ?>


Czy powyzsza petle mozna zastapic jednym zapytaniem ?

I od razu drugie pytanie o zapytanie smile.gif

Czy jesli wiem ze wynikiem zapytania bedzie dokladnie jedna wartos np dokladnie jedno user_id
i pobieram pole tylko z user_id na zasadzie: (wiem ze zapytanie samo w sobie bezsensu tongue.gif)

  1. SELECT user_id FROM uzytkownicy WHERE user_id = 3


Tutaj mam pewnosci ze wynikiem bedzie tablica z jedna tylko komorka. A wlasnie czy tablica ? Czy musze robic mysql_fetch_... zeby uizyskac wynik takiego zapytania ?


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
nospor
post 28.06.2006, 08:13:04
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad1)
  1. SELECT sum(klikniecia) suma FROM staty WHERE user_id = 3


ad2)
no do pobrania sluzą funkcje z rodziny mysql_fetch...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thornag
post 28.06.2006, 09:30:33
Post #10





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Czyli nie ma szans zeby zastosowac wynik zapytanie bezposrednio np uzywajac echo.

Dzieki za odpowiedzi. I zapewniam ze bede dziekowal jeszcze wielokrotnie smile.gif


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

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: 13.06.2025 - 15:42