В синтаксисе SQL есть некоторые вещи, которые вы не понимаете.
Оператор SELECT
состоит из набора предложений в фиксированном порядке. Наиболее распространенные пункты:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Порядок фиксирован. Предложение WHERE
(если присутствует) всегда следует за предложением FROM
. JOIN
- это оператор , распознаваемый в предложении FROM
. Это не пункт, поэтому ваша первая версия не работает.
У меня довольно строгая политика отступов для любого запроса, который я пишу. Я всегда выравнивал пункты по левому краю и обычно помещал операторы в end строки. Вот почему я написал бы запрос следующим образом:
select u.username, u.deskid, d.deskname
from userprofile u join
desk d
on u.deskid = d.deskid
where u.username in ('user1', 'user2', 'user3')
Обратите внимание, что я также использую псевдонимы таблиц, которые облегчают написание и чтение запроса.