SQL как т ie таблицы вместе - PullRequest
1 голос
/ 20 марта 2020

Мой профессор сказал, что я не сделал t ie между таблицами, теперь я хочу спросить, как t ie таблиц, это два моих примера, которые я сделал неправильно.

Query2 - нет связей между таблицы

SELECT CustomerID, CompanyName, [Order Details].UnitPrice
FROM Customers, [Order Details]
WHERE ((([Order Details].UnitPrice)>=50));

Query3 - нет связи между таблицами

SELECT ProductID, ProductName, ShippedDate
FROM Products, Orders
where Orders.ShippedDate between ('1996-07-01') and ('1996-07-31')
ORDER BY Orders.ShippedDate;

1 Ответ

0 голосов
/ 20 марта 2020

В основном в вашем запросе отсутствуют условия объединения двух таблиц. Без этого вы получаете декартовы произведения строк из обеих таблиц.

Здесь вступает в игру синтаксис join. Например, для второго запроса, предполагая, что products и orders связаны через столбец product_id:

select p.productid, p.productname, o.shippeddate
from products p
inner join orders o on o.product_id = p.product_id
where o.shippeddate >= '1996-07-01' and o.shippeddate < '1996-08-01'
order by o.shippeddate;

Другие улучшения запроса:

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