Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Łączenie tabel
makinto
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.01.2013

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


Witam

Posiadam dwie tabele

Users

id | nick | pass | data_rej | nazwa users


i druga tabela

Wiadomosci

wiad_id | wiad_od | wiad_do | wiad_data | wiad_temat | wiad_tresc | wiad_status

I teraz mam pytanie bo już próbuję na różne sposoby i nic nie wychodzi. Chciałbym wyciągnąć informację

wiad_temat | wiad_data | wiad_data | nazwa_users.

chodzi o to abym wiedział od kogo dostałem wiadomości.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Na podstawie jakiego pola jest powiązanie między tabelą users a wiadomosci? Jeśli nick jest unikatowy to możesz tak:

  1. SELECT wiadomosci.wiad_temat, wiadomosci.wiad_data, users.nazwa_users FROM wiadomosci JOIN users ON wiadomosci.wiad_od = users.nazwa_users


ale zalecałbym wpisywanie do tabeli wiadomosci id usera.
Go to the top of the page
+Quote Post
makinto
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.01.2013

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


tzn ? jak miałoby to wyglądać ?

  1. SELECT wiadomosci.wiad_temat, wiadomosci.wiad_data, users.nazwa_users FROM wiadomosci JOIN users ON wiadomosci.wiad_od = users.nazwa_users WHERE wiadomosci.wiad_do=1



Takie zapytanie nie zwraca żadnych wyników mimo iż t tabeli wiadomości są wiadomości do id=1
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Zapewnie wiad_od i wiad_do = users.id
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(makinto @ 21.01.2013, 18:25:37 ) *
tzn ? jak miałoby to wyglądać ?

  1. SELECT wiadomosci.wiad_temat, wiadomosci.wiad_data, users.nazwa_users FROM wiadomosci JOIN users ON wiadomosci.wiad_od = users.nazwa_users WHERE wiadomosci.wiad_do=1



Takie zapytanie nie zwraca żadnych wyników mimo iż t tabeli wiadomości są wiadomości do id=1


A skąd ja mam wiedzieć co Ty masz wpisane w tabeli wiadomosci? Nie napisałeś tego. Czym są pola przedstawione przez Ciebie w pierwszym poście, jakie dane przechowują?
Go to the top of the page
+Quote Post
makinto
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.01.2013

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


Pole Typ Null
wiad_id int(11) Nie
wiad_tresc text Tak NULL
wiad_od int(11) Tak NULL
wiad_do int(11) Tak NULL
wiad_status tinyint(1) Tak NULL
wiad_data datetime Tak NULL
wiad_temat varchar(30) Tak NULL
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #7





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(makinto @ 21.01.2013, 18:48:21 ) *
Pole Typ Null
wiad_id int(11) Nie
wiad_tresc text Tak NULL
wiad_od int(11) Tak NULL
wiad_do int(11) Tak NULL
wiad_status tinyint(1) Tak NULL
wiad_data datetime Tak NULL
wiad_temat varchar(30) Tak NULL


Jeśli wiad_od to id użytkownika (zakładam tak po typie pola), to zapytanie powinno wyglądać tak:

  1. SELECT wiadomosci.wiad_temat, wiadomosci.wiad_data, users.nazwa_users FROM wiadomosci JOIN users ON wiadomosci.wiad_od = users.id
Go to the top of the page
+Quote Post
makinto
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.01.2013

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


  1. SELECT wiadomosci.wiad_temat, wiadomosci.wiad_data, users.nazwa_users FROM wiadomosci JOIN users ON wiadomosci.wiad_od = users.id WHERE wiad_do=$id_logged


Działa. Dzięki wielkie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 14:52