Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wykluczenie powtarzających się rekordów
inin
post
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:
(IMG:https://i.postimg.cc/9XdJH8Rz/lv-L4w-L2-T4y1-MNi-Poml-BBY5x8x-GT2-Fby-JEcpn8t-IJ.png)
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:
(IMG:https://i.postimg.cc/pd5JGqMW/EHd-SPb-RUst-VKx-IPd-Jn-L57-JBn-M2-Vn-JWAZC5-AMK1sq.png)
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
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
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 ?
Go to the top of the page
+Quote Post
inin
post
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 (IMG:style_emoticons/default/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
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 06:08