Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykluczenie powtarzających się rekordów
Forum PHP.pl > Forum > Bazy danych
inin
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ę
nospor
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 ?
inin
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
nospor
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.