/ / Jak poprawnie sformatować zagnieżdżone połączenia wewnętrzne w programie Access SQL? - sql, count, sql-order-by, internal-join

Jak poprawnie sformatować zagnieżdżone połączenia wewnętrzne w Access SQL? - sql, count, sql-order-by, inner-join

Mam następujące tabele:

   VENDOR:          PRODUCT:           ITEM:             STORE:
-  VENDOR_ID     -  PRODUCT_ID      -  ITEM_ID        -  STORE_ID
-  VENDOR_NAME   -  PRODUCT_DESC    -  STORE_ID       -  STORE_NAME
-  VENDOR_ID       -  PRODUCT_ID     -  STORE_LOCATION
-  ITEM_PRICE

Chcę wykonać następujące operacje łączenia, ale nie jestem pewien, jak sformatować go za pomocą programu Access SQL

SELECT DISTINCT VENDOR.VENDOR_NAME, COUNT(ITEM.PRODUCT_CODE)
FROM VENDOR INNER JOIN PRODUCT ON VENDOR.VENDOR_ID = PRODUCT.VENDOR_ID
INNER JOIN ITEM ON PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID
GROUP BY VENDOR.VENDOR_NAME
ORDER BY COUNT(ITEM.PRODUCT_ID) DESC;

Czy możesz mi powiedzieć, jak prawidłowo zagnieżdżać ŁĄCZENIA WEWNĘTRZNE w ten sposób? Używam Access!

Odpowiedzi:

0 dla odpowiedzi № 1
FROM (VENDOR
INNER JOIN PRODUCT ON VENDOR.VENDOR_ID = PRODUCT.VENDOR_ID)
INNER JOIN ITEM ON PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID

Brakowało tylko nawiasu


0 dla odpowiedzi nr 2

Aparat bazy danych ma kilka metodmożna użyć do połączenia dwóch tabel. Wybrana metoda jest wybierana przez to, co baza danych wie o rozmiarze i danych w tabelach i może mieć ogromny wpływ na ogólną wydajność.

I pomyśl o złączeniach wewnętrznych: czy wynik nie zawsze jest taki sam, bez względu na kolejność?

Optymalizator zapytań może poprawić zapytanie poprzez zmianę kolejności połączeń, dlatego nigdy nie należy określać zagnieżdżania w SQL. Po prostu zostaw to profesjonalistom (w tym przypadku: algorytmowi).