Итак, я узнал, как выполнить массовую вставку, используя данные из одной таблицы в качестве идентификатора пользователя из другой таблицы. Теперь я попытался сделать то же самое, но у меня ошибка SQL (ите). Я догадался о синтаксисе, и я ошибся. После массовой вставки в подписку я хочу добавить 1 к каждому количеству пользователей. У меня ошибка левого соединения. Как мне исправить это?
-edit- Я еще не решил это. Пожалуйста помоги.
ПРИМЕЧАНИЕ. Я использую sqlite ATM, но переключаюсь на mysql или MS sql
void updateMediaForSubscribers(long userId, long mediaId, Media_Base.Catagory cat, DateTime currentDate)
{
command.CommandText =
"INSERT INTO user_media_subscription (recipientId, mediaId, catagory) " +
"SELECT watcher, @mediaId, @category " +
"FROM user_watch WHERE watched=@watched;";
command.Parameters.Add("@mediaId", DbType.Int64).Value = mediaId;
command.Parameters.Add("@category", DbType.Int64).Value = cat;
command.Parameters.Add("@watched", DbType.Int64).Value = userId;
command.ExecuteNonQuery();
//near "LEFT": syntax error
command.CommandText =
"UPDATE user_data SET mediaMsgCount=mediaMsgCount+1 " +
"LEFT JOIN user_watch AS w ON w.watcher=user_data.userId " +
"WHERE w.watched=@watched;";
command.Parameters.Add("@watched", DbType.Int64).Value = userId;
command.ExecuteNonQuery();
}