Извините, если это название немного запутано ... Я испорчен ORM, и мои сырые навыки SQL действительно бедны, по-видимому.Выберите пользователя по имени пользователя, а затем выберите данные из другой таблицы, используя их UID
Я пишу приложение, которое ссылается на форум vBulletin. Пользователи аутентифицируются с помощью имени пользователя своего форума, и запрос для этого прост (выбор по имени пользователя из таблицы пользователей). Следующая половина его сложнее. Также есть таблица подписок, в которой есть временная метка, но основным ключом для них является идентификатор пользователя, а не имя пользователя.
Это то, что я работал так далеко:
SELECT
forum.user.userid,
forum.user.usergroupid,
forum.user.password,
forum.user.salt,
forum.user.pmunread,
forum.subscriptionlog.expirydate
FROM
forum.user
JOIN forum.subscriptionlog
WHERE
forum.user.username LIKE 'SomeUSER'
К сожалению, это возвращает полноту subscriptionlog таблицы, которая имеет смысл, потому что нет ни одного поля имени пользователя в нем. Можно ли захватить строку подписного журнала, используя userid, который я получаю от forum.user.userid, или это нужно разделить на два запроса?
Спасибо!
Урок № 1 в том, почему не использовать слепой 'join', если вы не знаете, вам это нужно. Это полностью сформулировано как «cross join» и _can_ быть полезным в соответствующих случаях, но обычно это не так. Просто выполните «внутреннее соединение», используя столбцы id из обеих таблиц. –