McDeFF
@McDeFF
Мда.

Как выбрать из бд в массив, а потом снова выбрать из бд все строки с данными из этого массива?

У меня есть таблица whois со столбцами who1, who2, status. Нужно выбрать из этой таблицы все строки, где или who1 или who2 равен, например, "glados" и поместить данные выбранных строк в массив. После нужно из таблицы whereis выбрать все строки по массиву, в которых author равно всем выбранным сначала who1 или who2, но не равно "glados".

Я не могу придумать, как это реализовать. Надеюсь на вашу помощь.

Заранее спасибо.
  • Вопрос задан
  • 2407 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT * 
    FROM (SELECT DISTINCT IF(`who1` = 'glados', `who2`, `who1`) AS `name`
            FROM `whois` 
            WHERE (`who1` = 'glados' OR `who2` = 'glados') 
                AND `who1` != `who2`)
        AS `who`
    LEFT JOIN `whereis` AS `where` ON `where`.`author` = `who`.`name`
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ну ты ж в принципе все расписал, что не получается-то?
Ответ написан
@holfza
Может как-то так:
select * from whereis where 
author in (select who1 from whois where who2 = "glados") 
or 
author in (select who2 from whois where who1 = "glados")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы