![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam takie pytanie.... Mam dwie tabele 1. users (id, username) 2. message (id, id_user, id_to, body) W tabeli message trzymam wiadomość wysłaną od jednego usera do 2giego, id obu userów i id wiadomości. Mam problem z zapytaniem, które zwróci mi coś takiego: ---------------------------------------------------------- | FROM | TO | MESSAGE | | nazwa usera | nazwa usera | tresc wiadomości | ----------------------------------------------------------- Odpytuję bazę w ten sposób, ale to zwraca mi tylko nazwę nadawcy, a nie mam pomysły jak odpytać o nazwę odbiorcy. SELECT u.username UZYTKOWNIK, m.body WIADOMOSC from user u join message m on (u.id = m.id_user) where u.id = "27"; Będę wdzięczny za podpowiedź. Na logikę musi być gdzieć Subquery - ale nie wiem jak to zrobić. Pozdrawiam, Kazik. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Wcale nie musi. Potrzebujesz za to jeszcze jednej tabeli z użytkownikami. Ale bez sensu jest robić dwie takie same tabele, więc dołączysz drugi raz tą samą, ale z innym aliasem.
Kod SELECT n.username AS nadawca, o.username AS odbiorca, m.body AS wiadomosc
FROM user AS n LEFT JOIN message AS m ON u.id = m.id_user LEFT JOIN user AS o ON m.user_to = o.id WHERE n.id = 27 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję!
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 15:09 |