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 № 1FROM (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).