Member 12672446 Ответов: 1

Как вернуть только отдельные строки на основе fielda, если fieldb имеет значение null?


У меня есть два стола, которые я пытаюсь соединить вместе:

SELECT Name FROM List3, (SELECT List1.Name FROM List1 LEFT JOIN List2 ON List1.Name = List2.Name) AS Joined WHERE Joined.Rate = List3.Rate AND Joined.Size = List3.Size


Судя по моим тестовым случаям, это работает именно так, как я хочу. Тем не менее, сейчас я пытаюсь сделать так, чтобы он допускал ситуации, когда соединение может закончиться нулевой скоростью (или несопоставимым результатом, если это вообще возможно).

Что я уже пробовал:

WHERE (Joined.Rate = List3.Rate AND Joined.Size = List3.Size) OR Joined.Rate IS NULL


Из-за количества других полей результат дает мне пару сотен совпадений для одного элемента с нулевой ставкой.

То,что я хочу, - это показать только каждый присоединенный нулевой рейтинг.Назовите только один раз.

1 Ответов

Рейтинг:
0

Maciej Los

Я бы посоветовал прочитать это: Визуальное представление SQL-соединений[^Это может быть полезно для понимания того, что LEFT JOIN делает.

Кроме того, трудно сказать, что вам нужно улучшить, чтобы вернуть один элемент, не видя ваших данных...

Для получения дополнительной информации, пожалуйста, смотрите: Доступ К Подзапросу Расширенные Методы[^]


Member 12672446

List1 задается пользователем-просто имена элементов. List2 имеет имена, а также ряд полей, которые предоставляют информацию, относящуюся к этому элементу. Каждый элемент может иметь несколько записей. Например, мяч может иметь размер = 2, скорость = 6, местоположение = C, а также размер = 3, Скорость = 5, местоположение = D.

List1 LEFT JOIN List2 предназначен для отображения всех элементов из списка пользователей, а затем прикрепления всей доступной информации из БД. List3-это отдельная таблица с размером, ставкой и стоимостью (например, size = 3, Rate = 2.6, Cost = 6).

Итак, то, что я хочу видеть, - это список всех элементов от пользователя (List1), показанный один раз, прикрепленный к любой информации в List2, где размер и скорость совпадают с результатом в List3.

Проблема появляется только для элементов, где нет совпадающих записей в List2/List3, так как если я проверю null, то он покажет все.