Вставка результата подзапроса IN в отдельные столбцы
У меня есть стол follower
а также followee
который содержит два user_id
ценности.
user_id
S отображаются на username
и мне нужно получить соответствие user_id
с поставляемого username
,
Чтобы получить user_ids
У меня есть запрос
SELECT user_id FROM user WHERE username IN (username1, username2)
Что я хочу сделать, это вставить эти значения в таблицу последователей, и я думаю, что я начну с
INSERT INTO followers (follower, followee) ( SELECT user_id FROM user WHERE username IN (username1, username2)
)
Тем не менее, этот запрос приводит к двум проблемам: 1) как я могу гарантировать, что правильный результат является подписчиком и подписчиком 2) как мне взять результат SELECT
заявление и положить его в формате, который MySQL принимает в качестве значений для вставки?
1 ответ
Решение
Я не уверен, как устроены структуры ваших таблиц, но если username1 - это имя подписчика, а username2 - подписчика, этот запрос должен помочь вам:
INSERT INTO followers (follower, followee)
SELECT follower.user_id, followee.user_id
FROM user AS follower
INNER JOIN user AS followee ON (follower.user_id <> followee.user_id)
WHERE follower.username = username1
AND followee.username = username2