Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dwie kolumny
MagicianVH
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.08.2010

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


Mam dwie tabele:

1. Player z kolumną PID i Name. PID to unikalna dla każdego wartość.
2. Log z kolumną Operacja, Player1, Player2. (Player1, Player2 zawiera numer PID)

Przy wyświetlaniu wyników zamiast numerków chciałbym, żeby widniały nicki graczy, ale nie udało mi się tego zrobić przez jedno zapytanie.

Zrobiłem to prowizorycznie, ale to mnie nie satysfakcjonuje:

  1. ...
  2. $query1 = "SELECT Player2, Name FROM Log, Player WHERE Player2=PID";
  3. $query2 = "SELECT Player1, Name FROM Log, Player WHERE Player1=PID";
  4.  
  5. $q1 = odbc_exec($conn, $query1);
  6. $q2 = odbc_exec($conn, $query2);
  7.  
  8. while($p = odbc_fetch_array($q2)){
  9. $r = odbc_fetch_array($q1);
  10. $p['Player2'] = $r['Name'];
  11. echo "...";
  12.  
  13. }
  14.  
  15. ..

Jak skonstruować zapytanie, które od razu zwróci mi te nicki?

Ten post edytował MagicianVH 30.04.2012, 09:29:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


  1. SELECT `l`.`Operacja`, `p1`.`Name` AS `Player1`, `p2`.`Name` AS `Player2` FROM `Log` `l` LEFT JOIN `Player` `p1` ON `l`.`Player1` = `p1`.`PID` LEFT JOIN `Player` `p2` ON `l`.`PID` = `p2`.`Player2`

To tak mniej więcej. Spodziewam się tutaj sporej nadmiarowości danych, którą zniweluje np. odpowiednie grupowanie. Możesz też sprawdzić, jak zadziała tutaj RIGHT JOIN lub INNER JOIN, bo jakoś nie mam głowy do myślenia na tym upale.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 05:15