выбрать из таблицы, используя другой выбор в том же запросе - PullRequest
0 голосов
/ 18 января 2019

сценарий mysql:

таблица: posts => postId, userId postContent; таблица: friends => friendId, userA, userB;

запрос:

SELECT *
FROM posts
WHERE userId IN (SELECT * FROM friends WHERE userA = {$_SESSION['userId']} OR userB = {$_SESSION['userId']});

mysqli_fetch_assoc() ожидает, что параметр 1 будет иметь значение mysqli_result, задано bool

что мне не хватает в запросе?

Ответы [ 2 ]

0 голосов
/ 18 января 2019

РЕДАКТИРОВАТЬ : С одним подзапросом

SELECT *
FROM posts 
WHERE userId IN (
    SELECT 

    CASE 
        WHEN userA = {$_SESSION['userId']} THEN userB
        ELSE userA
    END as user

    FROM friends WHERE userA = {$_SESSION['userId']} OR userB = {$_SESSION['userId']}
);

СТАРЫЙ ОТВЕТ:

Я ищу лучшее решение, но думаю, что оно работает с двумя подзапросами:

SELECT *
FROM posts 
WHERE userId IN (SELECT userB FROM friends WHERE userA = {$_SESSION['userId']}) OR userId IN (SELECT userA FROM friends WHERE userB = {$_SESSION['userId']});

Но, пожалуйста, рассмотрите возможность использования PDO для повышения безопасности

0 голосов
/ 18 января 2019

пожалуйста, попробуйте это

SELECT *
FROM statements 
WHERE userId IN (SELECT userId FROM friends WHERE userA = {$_SESSION['userId']} OR userB = {$_SESSION['userId']});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...