Witam. nie moge sobie poradzic z distinctem jako subquery wyrzucajacym kilka danych z wiersza. Z poczatku pobieralem tylko dane z jednej kolumny i wszystko dzialalo jak naezy. Zapytanie wygladalo tak:

  1.  
  2. $odebrane_pm = "SELECT a.user_id, a.user_name FROM users AS a
  3. WHERE a.user_id IN (SELECT DISTINCT pm_from FROM pm AS c WHERE c.pm_to = $user_id ORDER BY c.pm_data DESC) ";
  4. $wynikodebrane = mysql_query($odebrane_pm);
  5. while($rowodebrane = mysql_fetch_assoc($wynikodebrane))
  6. {
  7. echo $rowodebrane['user_id'];
  8. echo $rowodebrane['user_name'];
  9. }


z czasem zauwazylem ze musze pobrac dane z 2 kolumn w wierszu a nie tylko z kolumny pm_from wiec przerobilem zapytanie distinct na takie:

  1.  
  2. $odebrane_pmTest = "SELECT DISTINCT pm_from, pm_read FROM pm AS c WHERE c.pm_to = $user_id GROUP BY pm_from ORDER BY c.pm_data DESC";
  3. $wynikodebraneTest = mysql_query($odebrane_pmTest);
  4. while($rowodebraneTest = mysql_fetch_assoc($wynikodebraneTest))
  5. {
  6. echo $rowodebraneTest['pm_read'];
  7. echo $rowodebraneTest['pm_from'];
  8. }


samo przerobione zapytanie distinct dziala i wyrzuca mi oczekiwane wyniki. problem jest w polaczeniu jako subquery... kiedy robie zapytanie tak jak w pierwszym przykladzie to wyskakuje blad.

  1. $odebrane_pm = "SELECT a.user_id, a.user_name, c.pm_read FROM users AS a
  2. WHERE a.user_id IN (SELECT DISTINCT c.pm_from, c.pm_read FROM pm AS c WHERE c.pm_to = $user_id GROUP BY c.pm_from ORDER BY c.pm_data DESC ) ";
  3. $wynikodebrane = mysql_query($odebrane_pm);
  4. while($rowodebrane = mysql_fetch_assoc($wynikodebrane))
  5. {
  6. echo $rowodebrane['pm_read'];
  7. echo $rowodebrane['user_id'];
  8. echo $rowodebrane['user_name'];
  9. }