Poziom średniozaawansowany

Zadanie 25

Korzystając z tabeli Order_Items znajdź te zamówienia, które zawierają produkty o id 3127 i 3106 (oba jednocześnie). Zadanie rozwiąż na co najmniej dwa sposoby.

Schemat: OE, Tabela: Order_Items, Kolumny: order_id, product_id, Wynik: 13 rows

 

 

 

 

 

 

 

 

 

[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]
  1. Z użyciem INTERSECT:

 

SELECT order_id

FROM order_items

WHERE product_id = 3127

INTERSECT

SELECT order_id

FROM order_items

WHERE product_id = 3106

ORDER BY order_id;

  1. Z użyciem EXISTS:

SELECT order_id

FROM order_items oi

WHERE product_id = 3127

AND EXISTS (

SELECT order_id

FROM order_items oi2

WHERE product_id = 3106 AND oi.order_id = oi2.order_id

)

ORDER BY order_id;

  1. Z użyciem IN:

SELECT order_id

FROM order_items

WHERE product_id = 3127

AND order_id IN

( SELECT order_id FROM order_items WHERE product_id = 3106);

  1. Z użyciem klauzuli WITH:

WITH Subquery AS (

SELECT order_id

FROM order_items

WHERE product_id = 3127 OR product_id = 3106

)

SELECT *

FROM Subquery

GROUP BY order_id

HAVING COUNT(*) >1

ORDER BY order_id;

  1. Z podzapytaniem w klauzuli FROM:

SELECT order_id

FROM (

SELECT order_id

FROM order_items

WHERE product_id = 3127 OR product_id = 3106

) Tab

GROUP BY order_id

HAVING COUNT(*) >1

ORDER BY order_id;

[/spoiler]

Alexandretta

Kobieta gracz. Po godzinach pracy, z zapałem i piekielnymi ognikami w oczach biega po lochach i tłucze bogu ducha winne zombie czy inne szkielety. Miłośniczka wszelkiej maści cRPG. Notoryczne problemy z wyborem klasy i rasy, bo wszystko fajne... W chwilach zwątpienia zatraca się przy dźwiękach mieczy, roztrzaskiwanych tarcz i okrzyków bojowych, słuchając wiking metalu z zimnej, niegościnnej, odległej Skandynawii. Czasem zdarzy jej się pograć w jakąś strategię bądź nawet w FPP, ale tylko na easy, żeby nie psuć sobie niepotrzebnie nerwów.

Related Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Back to top button