Есть 2 таблицы, с юзерами и с теми, на кого подписан юзер
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment, -- id
`login` varchar(25) NOT NULL default '', -- Логин
PRIMARY KEY (`id`)
)
CREATE TABLE `subscribers` (
`id` int(11) NOT NULL, -- id юзера
`id_subscriber` int(11) NOT NULL -- На кого подписан юзер
)
Я получаю список подписок таким образом
SELECT us.login
FROM `subscribers` AS sub, `users` AS us
WHERE sub.id = 1 AND us.id = sub.id_subscriber
Результат возвращает один столбец с логинами тех, на кого подписан данный юзер
Дак вот, можно ли как-то сделать чтобы напротив каждого возвращаемого логина был флажек, подписан ли он тоже на меня?
SELECT
us.login,
IF(us.id IN (SELECT `id` FROM `subscribers` WHERE `id_subscriber`='MY_ID'), 1, 0) AS IsMySubsciber
FROM `subscribers` AS sub, `users` AS us
WHERE sub.id = 1 AND us.id = sub.id_subscriber
Примерно так, вроде не накосячил. IsMySubscriber
- говорящая переменная. Но с учетом тяжести подзапроса я бы после первого запроса собрал все ID и запросил всех своих подписчиков из них ($sql = '... WHERE id IN '.implode(', ', $ids).' AND id_subscriber=MY_ID;'
), это должно быть легче для MySQL. Потом выводить по совпадениям в обоих массивах, соответственно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В сервлете пытаюсь подключиться к БД и выполнить запросВозникает ошибка
Заношу в базу данных записиА они почему-то не по порядку записываются
Подскажите, пожалуйста, в чем ошибкаПытаюсь сделать экспорт бд MySQL таким способом