• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie łączone, zapytanie o nazwę user w bazie danych

Object Storage Arubacloud
+1 głos
132 wizyt
pytanie zadane 21 lipca 2023 w SQL, bazy danych przez neo1020 Dyskutant (8,430 p.)
edycja 21 lipca 2023 przez neo1020

Czy to zapytanie można przerobić tak aby od razu pobrać nazwę użytkownika z tabeli users (nazwę nadawcy) gdzie w tabeli wiadomosci.w_id (jest tylko id), nazwę odbiorcy to mogę z sesji, wróciłem trochę do programowania i od wczoraj nie mogę sobie z tym poradzić, GPT nie pomaga 

z góry dzięki

 

SELECT 
                                users.id AS odbiorca_id, 
                                users.user AS odbiorca, 
                                wiadomosci.w_odbiorca AS odbiorca_id,
                                wiadomosci.w_nadawca AS nadawca_id, 
                                wiadomosci.w_temat, 
                                wiadomosci.w_opis
                        FROM users
                        INNER JOIN 
                                wiadomosci ON users.id = wiadomosci.w_odbiorca
                        WHERE 
                                wiadomosci.w_odbiorca = :name 
                        ORDER BY 
                                wiadomosci.w_status 
                        DESC

EDIT

Teraz zrobiłem takie zapytanie ale mam 0 wyników

SELECT
    wiadomosci.w_id AS wiadomosc_id,
    odbiorcy.user AS nazwa_odbiorcy,
    nadawcy.user AS nazwa_nadawcy,
    wiadomosci.w_temat,
    wiadomosci.w_opis
FROM
    wiadomosci
INNER JOIN
    users AS odbiorcy ON wiadomosci.w_odbiorca = odbiorcy.id
INNER JOIN
    users AS nadawcy ON wiadomosci.w_nadawca = nadawcy.id;

Co robię źle proszę o rade

1
komentarz 21 lipca 2023 przez SzkolnyAdmin Szeryf (86,400 p.)
Pokaż strukturę tabeli w bazie.
komentarz 22 lipca 2023 przez neo1020 Dyskutant (8,430 p.)

Za bardzo się pośpieszyłem, nie lubię stać w miejscu 

SELECT 
    users.id, 
    users.user AS first_id,
    wiadomosci.w_odbiorca, 
    wiadomosci.w_nadawca, 
    wiadomosci.w_temat, 
    wiadomosci.w_opis
FROM 
    users
INNER JOIN 
    wiadomosci ON users.id = wiadomosci.w_nadawca							
WHERE 
    wiadomosci.w_odbiorca = :name 
ORDER BY 
    wiadomosci.w_status DESC

Pobieram nazwę NADAWCY po ID, a odbiorcy nazwę mam w sesji więc rozwiązałem problem trochę inaczej (i tak trzeba być zalogowanym aby odebrać wiadomość)

Ale jak ktoś ma rozwiązanie lub radę to proszę będzie na przyszłość (Zdjęcie w nowym oknie)

1 odpowiedź

+1 głos
odpowiedź 9 sierpnia 2023 przez andrew.guzowski Użytkownik (600 p.)
SELECT
    odbiorca.id AS id_odbiorca,
    odbiorca.user AS odbiorca,
    nadawca.id AS id_nadawca,
    nadawca.user AS nadawca,
    w.w_temat, 
    w.w_opis
FROM
    wiadomosci w
JOIN
    users nadawca ON nadawca.id = w.w_nadawca
JOIN
    users odbiorca ON odbiorca.id = w.w_odbiorca                        
WHERE
    w.w_odbiorca = :name
ORDER BY
    w.w_status DESC

To powinno pomóc. Otrzymasz id i nazwę odbiorcy oraz nadawcy, temat i opis wiadomości. O ile dobrze zrozumiałem twoją potrzebę wink

 

wiadomosci w - w jest aliasem dla tabeli wiadomości

users nadawca - nadawca jest aliasem dla tabeli users (mogłoby być samp np. n, ale dla lepszej czytelności)

users odbiorca - jak wyżej ale dla odbiorcy

Podobne pytania

0 głosów
1 odpowiedź 517 wizyt
pytanie zadane 23 października 2018 w PHP przez UczenVadera Początkujący (380 p.)
+1 głos
1 odpowiedź 124 wizyt
pytanie zadane 1 lutego 2023 w SQL, bazy danych przez Antoni2422 Użytkownik (570 p.)
0 głosów
1 odpowiedź 203 wizyt
pytanie zadane 16 stycznia 2023 w SQL, bazy danych przez Beginner555 Obywatel (1,760 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...