Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wykluczenie powtarzających się rekordów
inin
post 4.01.2021, 11:56:51
Post #1





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

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


Witajcie!
Tworząc swój serwis napotkałem na problem powtarzających się rekordów.
Mając do dyspozycji jedynie id_pracodawcy z tabeli oferty powinienem otrzymałem takie dane:
  1. SELECT logowanie.id_usera, logowanie.imie, logowanie.nazwisko FROM logowanie JOIN aplikacje ON logowanie.id_usera=aplikacje.id_uzytkownika JOIN oferty ON aplikacje.id_oferty=oferty.id WHERE oferty.pracodawca=39

efekt:

Widać tutaj że dane się powtarzają, nie wiem w którym momencie jest błąd.
Krótki opis:
-tabela oferty zawiera informacje na temat dodanych ofert, wśród nich jest ID pracodawcy <- który dodał ofertę.
-tabela aplikacje zawiera id_oferty oraz id_uzytkownika
-tabela logowanie zawiera informacje o uzytkownikach pracodawcach

zarys:

Chciałbym uzyskać dane (imie nazwisko i id_usera z tabeli logowanie) o użytkownikach którzy aplikowali do danej oferty.

Konkretniej: pracodawca o id 39 jest autorem oferty nr 33.
W tabeli aplikacje są 3 takie rekordy (id oferty: 33 id_uzytkownika 64) i kolejno: (id oferty: 33 id_uzytkownika 65) (id oferty: 33 id_uzytkownika 69)
I połączenie z tabelą logowanie aby wydrukować imię i nazwisko oraz id_usera.

Proszę o wskazanie co mam poprawić aby ta kwerenda zadziałała tak jak powinna. Próbuje z left JOIN i right JOIN, dobrać się od drugiej strony tzn. od tabeli logowanie i nadal to samo
Dziękuję
Go to the top of the page
+Quote Post
nospor
post 4.01.2021, 12:44:45
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




FROM powinien byc po OFERTY, potem LEFT JOIN po APLIKACJE i LEFT JOIN po LOGOWANIE

ps: swoja droga to zes nazwal te tabele LOGOWANIE.... Skoro tam sa uzytkownicy to moze powinna sie nazywac: UZYTKOWNICY ?


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

"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
inin
post 4.01.2021, 12:59:46
Post #3





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

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


Cytat(nospor @ 4.01.2021, 12:44:45 ) *
FROM powinien byc po OFERTY, potem LEFT JOIN po APLIKACJE i LEFT JOIN po LOGOWANIE

ps: swoja droga to zes nazwal te tabele LOGOWANIE.... Skoro tam sa uzytkownicy to moze powinna sie nazywac: UZYTKOWNICY ?


no nie smile.gif chciałem stworzyć jeden formularz do logowania dla administratora, użytkownika i pracodawcy. w miarę to działa
Go to the top of the page
+Quote Post
nospor
post 4.01.2021, 15:01:33
Post #4





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




A adminstrator, uzytkownik i pracodawca to nie UZYTKOWNICY? Naprawde nadal uwazasz ze nazwa LOGOWANIE pasuje lepiej??

Logowanie to czynnosc, ktora sugeruje ze ktos sie zalogowal. Pod taka nazwa co najwyzej powiina byc tabela z historia logowan uzytkownikow

I jak juz zrozumiesz, i poprawisz nazwy tabel na niemylace ludzi, to zabierz sie tez za poprawe typow pol. Co to jest ze wszystko to VARCHAR 255? Haslo? 255 znakow? Naprawde trzymasz tam hasla w postaci jawnej?
Login 255 znakow? No bez przesady.
A widziales kiedys imie czy nazwisko o dlugosci 255 znakow?

Nie robie ci na zlosc, tylko wskazuje ewidentne bledy ktore robisz.


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

"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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 13:26