За последние 24 часа нас посетили 22487 программистов и 1154 робота. Сейчас ищут 619 программистов ...

Как правильно сформировать запрос

Тема в разделе "MySQL", создана пользователем Drummer, 17 дек 2020.

Метки:
  1. Drummer

    Drummer Активный пользователь

    С нами с:
    30 май 2020
    Сообщения:
    9
    Симпатии:
    1
    [​IMG]

    Как правильно сформировать запрос к базе, что-бы на выходе получить результат

    Игра: 1 (game_id)
    Партия: 1 (party_id)
    User 1: 43
    User 2: 11
    User 3: 87

    Партия 2 (party_id)
    User 1: 34
    User 2: 43
    User 3: 65

    Игра 2 (game_id)
    Партия 1 (party_id)
    User 1: 90
    User 2: 21
    User 3: 66
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Ну как то так
    Код (Text):
    1. SELECT a.game_id, a.party_id, a1.point AS USER1,  a2.point AS USER2,  a3.point AS USER3 FROM a
    2. LEFT JOIN a AS a1 ON a.game_id = a1.game_id && a.party_id = a1.party_id && a1.user_id = 1
    3. LEFT JOIN a AS a2 ON a.game_id = a2.game_id && a.party_id = a2.party_id && a2.user_id = 2
    4. LEFT JOIN a AS a3 ON a.game_id = a3.game_id && a.party_id = a3.party_id && a3.user_id = 3
    5. GROUP BY game_id, party_id
     
    Drummer нравится это.
  3. Drummer

    Drummer Активный пользователь

    С нами с:
    30 май 2020
    Сообщения:
    9
    Симпатии:
    1
    @ADSoft

    PHP:
    1. function getNames($pdo) {
    2.  
    3.     $sql = ("SELECT a.game_id, a.party_id, a1.point AS USER1,  a2.point AS USER2,  a3.point AS USER3 FROM a
    4.    LEFT JOIN a AS a1 ON a.game_id = a1.game_id && a.party_id = a1.party_id && a1.user_id = 1
    5.    LEFT JOIN a AS a2 ON a.game_id = a2.game_id && a.party_id = a2.party_id && a2.user_id = 2
    6.    LEFT JOIN a AS a3 ON a.game_id = a3.game_id && a.party_id = a3.party_id && a3.user_id = 3
    7.    GROUP BY game_id, party_id");
    8.  
    9.     $stmt = $pdo->prepare($sql);
    10.     $stmt->execute();
    11.     while ($row = $stmt->fetch()) {
    12.  
    13.     $namez = $row;
    14.         // echo "<pre>";
    15.         // print_r($row);
    16.         // echo "</pre>";
    17. }
    18.     return $namez;
    19. }
    Делаю var_dump, и выдает null. Что я не так делаю?
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    вы запрос просили - получили, выполните в phpmyadmin например
    по поводу кода вашего - а если раскомментировать строчки что видим?

    ну и данные наверное надо собирать
    PHP:
    1. $namez[] = $row