Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dwie tabele
Manwe89
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


Witam. Mój problem jest następujący: otórz biorę się za przebudowę, długo już istniejącego forum na pewnej stronce. problem jest taki iż w bazie w polu "autor" zamiast widniec ID uzytkownika, widnieje jego nick. No i teraz chialem troszeczke przebudowac baze w nastepujacy sposob: dodalem do tabeli z odpowiedziami pole: owner_id. odpowiedzi siedza w tabeli "forum_odp". Mam też tabele "users" (pola: id, nick, pass,....). Chciałbym teraz ulozyc takie zapytanie ktore porowna pole autor z tabeli forum_odp, z polem nick z tabeli users i jezeli bedzie takie samo to przypisze polu owner_id w tabeli forum_odp ID konkretnego uzytkownika. Ktos moglby pomoc napisac takie zapytanie?;>
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




select oraz left join
W manualu mysql masz przyklady


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

"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
Manwe89
post
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


to ze select to wiem. ale jakos nie moge sie polapac caly czas jak dziala to join smile.gif moze jakis dobry tutek ktos zna?;>
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




powiedzialem bys zajrzal do manuala.... tu tutek nie potrzebny
http://dev.mysql.com/doc/refman/5.0/en/join.html

  1. SELECT left_tbl.*, right_tbl.*
  2. FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id


Cytat
Some join examples:
SELECT * FROM table1, table2;

SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id;

SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id;

SELECT * FROM table1 LEFT JOIN table2 USING (id);

SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id
LEFT JOIN table3 ON table2.id=table3.id;


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

"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
Manwe89
post
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


no i to jest wlasnie ta bolaczka smile.gif pyta sie ktos niekumaty o cos i zamiast mu wskazac droge to daje cos co dla niego jest czana magia smile.gif jakbys pojechal do mechanika bo Ci cos w samochodzie klekocze, to chicalbys zeby doradzil Ci co zrobic i powiedzial: wymien kolo, czy moze chcialbys zeby dal Ci po angielsku specyfikacje techniczna danego pojazdu?;>

no i idąc dalej ja poszukuję odpowiedniego złożenia zapytania UPDATE, bo przeciez chce zaktualizowac dane zawarte w tabeli forum_odp a nie tylko wylistowac odpowiednie rekordy smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




dostales linka gdzie jest masa prostych przykladow. w poscie powyzej ci je nawet przytoczylem. Znajomosc angielskiego jest tu malo potrzebna smile.gif

ps: na zapytaniach mozesz sie pobawic, poeksperymentowac - nic nie zepsujesz.. a weź teraz jako laik poeksperymnetuj sobie na bebebach samochodu.... tongue.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
Manwe89
post
Post #7





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


no tak smile.gif o to chodzi ze eksperyment na 1,674 uzytkownikach i 254747 odpowiedzial w wypadku klapy moze byc dla mnei koncem pracy smile.gif samochod nie gryzie tongue.gif ze znajomoscia angielskiego u mnie nie ma problemu. W kazdym badz razie dzieki za pomoc i milego dnia zycze smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




1) zwykly select z join nic ci nie zrobi
2) kto ci każe eksperymentowac na prawdziwych danych...

ps: to ty wkoncu chcesz przy wyswietlaniu danych dobrac sie do nazwy, czy ty chcesz zrobic update na istniejących danych: zamienic nazwe na id?
Bo ja caly czas mowie o pierwszym, a po ostatnich postach widze ze chyba masz na mysli to drugie smile.gif

edit down:
ech..... winksmiley.jpg


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

"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
Manwe89
post
Post #9





Grupa: Zarejestrowani
Postów: 81
Pomógł: 3
Dołączył: 28.10.2008
Skąd: Łuków

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


na podstawie tych samoych nickow w dwoch tabelach w tej drugiej ustawic pole owner_id rowne polu id z pierwszej smile.gif juz sobie poradzilem smile.gif przeciez to bylo takie proste biggrin.gif

do dokoptuje tutaj zeby tematu nie zaczynac. Chce pobrac z bazy 10 najnowszych wpisow (id jest auto increment)

SELECT * FROM forum_odp ORDER BY id DESC LIMIT 10

tylko ze jezeli jest 10 odpowiedzi do tego samego tematu to mi sie pobierze 10 ostatnich odpowidzi ogolnie. A ja chialbym otrzymac 10 tematow w ktorych ostatnio udzieloono odp. Jaki warunek mam dodac do zapytania aby zagwarantowac sobie ze pole topic w kazdym z otrzymanych rekorodow bedzie inne?snitch.gif
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




  1. SELECT * FROM (SELECT fo.*, max(fo.ID) maxid FROM forum_odp fo GROUP BY topic ORDER BY ID DESC LIMIT 10 ) d ORDER BY maxid DESC


A najlepiej by bylo, jakbys w tematach mial informacje, jaki jest ostatni post 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

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: 22.08.2025 - 11:27