Первый запрос без какого-либо условия JOIN вернет те же результаты, что и CROSS JOIN. Это означает, что он присоединится к каждой строке таблицы Accounts
с каждой строкой таблицы Domain
. Таким образом, если у вас есть 4 строки в первой таблице и 8 в другой, у вас будет 32 результата. Если вы хотите взять только a.AccountId
, оно будет продублировано столько раз, сколько строк в таблице domain
. На самом деле я не вижу смысла первого запроса. Вы должны просто сделать это:
SELECT a.AccountId FROM Accounts
Второй запрос ведет себя как первый с той разницей, что он возвращает только те строки, которые соответствуют условию a.AccountId=d.AccountId
. Но вы действительно должны переписать этот запрос:
SELECT a.AccountId
FROM Accounts AS a
JOIN domain as d
ON a.AccountId=d.AccountId;
После ON
вы указываете условия JOIN.