То, что вы опубликовали, должно работать нормально.
Возможно, вы выбираете другие вещи, подобные этой?
SELECT DISTINCT ProductName, ProductId
FROM Products,Suppliers
WHERE Products.SupplierID = Suppliers.SupplierID AND Fax IS NULL
В качестве альтернативы, вы должны написать это так (но этоне поможет вам, если вы выбираете несколько столбцов).
SELECT DISTINCT ProductName
FROM Products
INNER JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID
WHERE Fax IS NULL
Если вы не уверены, почему выбор нескольких столбцов не будет работать:
SELECT DISTINCT ProductName, ProductId
FROM Products
INNER JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID
WHERE Fax IS NULL
Просто подумайте об этомследующий момент:
Products table:
ID Name
1 Test
2 Test
3 Other
4 Random
Вы хотите:
Mixed:
ID Name
4 Random
3 Other
? Test
Как выбрать этот 'id' для Test в смешанной таблице Distinct?Таким образом, он дает вам все DISTINCT комбинации всех данных, которые вы просили.
т.е.
Mixed:
ID Name
4 Random
3 Other
2 Test
1 Test