yous
@yous

SQL запрос подписки подписчиков?

Подскажите примерный sql запрос на такую конструкцию:

Есть Подписи на Юзеров, у Юзеров есть подписи на других Юзеров.. нужно вывести все мои Подписи + Подписи Юзеров на других Юзеров

1.Col = Юзер, 2.Col=ПодпискаНаЮзера
4c56da7db6ef450290c6934aa6e6b6f4.jpg

Если выбираем скажем для Юзера=1
то результат такой:
2,3,4,3
Если выбираем для Юзера=2
результат такой:
3

ну тупо примерно так

Массив_ИД_МоиПодписки = SELECT Юзер FROM ТаблицаПодписокЮзеров WHERE Юзер=%d
Массив_ИД_ПодпискиЮзеров = SELECT Юзер FROM ТаблицаПодписокЮзеров WHERE Юзер=Массив_ИД_МоиПодписки 

ОбъединениеМассива(Массив_ИД_МоиПодписки,Массив_ИД_ПодпискиЮзеров)


А как сделать через LEFT JOIN ? )))
примерно

SELECT t1.`ПодпискаНаЮзера`
    FROM `ТаблицаПодписокЮзеров` t1 
    LEFT JOIN (
        SELECT DISTINCT `ПодпискаНаЮзера` AS `parent`
            FROM `ТаблицаПодписокЮзеров`
    ) AS t2 ON t1.`Юзер`= t2.`parent`


а как сюда вставить именно для конкретного юзера?
т.е.

WHERE `Юзер`=%d
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
если правильно понял проблему, то можно обойтись без left join и прочего, а просто сделать
SELECT * FROM tablename WHERE col1 = 1 OR col1 IN (SELECT col2 FROM tablename WHERE col1 = 1)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы