Почему может не работать выборка?

149
17 июня 2018, 04:50

Есть примерная структура бд:

SELECT
    players.id AS player_id,
    teams_players.team_id AS team_id,
    users.name AS user_name,
    players.game_id AS game_id
FROM
    `users`
LEFT JOIN `players` ON `users`.`id` = `players`.`user_id`
LEFT JOIN `teams_players` ON `players`.`id` = `teams_players`.`player_id`
LEFT JOIN `teams` ON `teams_players`.`team_id` = `teams`.`id`
WHERE
    (
        `users`.`id` IN(
        SELECT
            IF(
                `sender_id` = 42,
                `receiver_id`,
                `sender_id`
            )
        FROM
            `friends`
        WHERE
            `status` = 1
        )
    ) AND(`players`.`game_id` = '3')

Выбираю друзей определенного пользователя со статусом 1, у которых игрок из игры 3. Получаю такой результат:

Теперь хочу вывести игроков у которых команда не равна 2(или её вообще нет)

SELECT
    players.id AS player_id,
    teams_players.team_id AS team_id,
    users.name AS user_name,
    players.game_id AS game_id
FROM
    `users`
LEFT JOIN `players` ON `users`.`id` = `players`.`user_id`
LEFT JOIN `teams_players` ON `players`.`id` = `teams_players`.`player_id`
LEFT JOIN `teams` ON `teams_players`.`team_id` = `teams`.`id`
WHERE
    (
        `users`.`id` IN(
        SELECT
            IF(
                `sender_id` = 42,
                `receiver_id`,
                `sender_id`
            )
        FROM
            `friends`
        WHERE
            `status` = 1
    )
    ) AND(`players`.`game_id` = '3') AND(teams.id <> 2)

Возвращает ноль строк. Что я делаю не так?

READ ALSO
Не исполняются sql запросы в node.js?

Не исполняются sql запросы в node.js?

При попытке зайти на страницу, где есть sql запросы в nоdejs, в консоли выводится предупреждение: (node:29843) [DEP0096] DeprecationWarning: timers

214
mysql datetime between

mysql datetime between

Есть табличка которая содержит поле datetimeТребуется выбрать данные из таблицы которые попадают под определённое ВРЕМЯ

207
php asterisk ami получить статус звонка

php asterisk ami получить статус звонка

я новичок в этом деле, поэтому не сочтите за глупость такой вопрос, как получить статус звонкаСуть в следующем, по нажатию на кнопке я совершаю...

178
Вызывает ли ::class подгрузку класса?

Вызывает ли ::class подгрузку класса?

Часто бывает необходимо в разных конфигах писать название класса (с пространствами имен)Видел по разному пишут: например просто строкой...

173