Я хочу посмотреть, какой пользователь создал оборудование для пола, для какого клиента - оба эти запроса выполняют то, что я хочу. Второй запрос, однако, приводит на 700 строк больше, чем первый. Не могли бы вы объяснить разницу?
Я запустил другой запрос, который обнаружил разницу между двумя наборами - конечно же, этот запрос дал 700 строк. Поэтому вывод данных такой же, но второй запрос каким-то образом ловит больше результатов. Я попытался посмотреть на дополнительные 700 строк, но все они казались нормальными и похожими на другие результаты. Я не могу найти разницу, глядя на код, и я надеюсь, что кто-то может помочь мне с
Первый запрос
SELECT customer.name, user.name, floor_equipment.id
FROM customer, user, floor_equipment, floor, building, site
WHERE (floor_equipment.floorID = floor.ID AND floor.buildingID = building.id AND
building.siteID = site.id AND floor_equipment.created_by = user.id)
Второй запрос
SELECT newTable.custName, newTable.userName, newTable.equipID
FROM (SELECT customer.name as "custName", user.name as "userName",
floor_equipment.id as "equipID", floor_equipment.created_by as "creatorID"
FROM customer, floor_equipment, floor, building, site
WHERE (floor_equipment.floorID = floor.ID AND floor.buildingID = building.id AND
building.siteID = site.id AND site.customerID = customer.ID)) as newTable, user
WHERE user.id = newTable.creatorID
Я ожидаю, что оба этих запроса будут иметь одинаковый результат, однако второй запрос дает на 700 строк больше, чем первый. Помимо лишних строк оба запроса приводят к одним и тем же данным. 700 дополнительных строк кажутся нормальными и похожими на другие строки.
ПРИМЕЧАНИЕ. Во втором запросе, казалось бы, бессмысленный подзапрос. Целью этого была оптимизация. Я выполняю эти запросы в Domo, веб-приложении для бизнес-аналитики. Я написал подзапрос в надежде, что он будет работать быстрее. Из-за того, как работает Domo, первый занял 2 часа, а второй - 45 секунд.