Em xin cảm ơn video của anh ạ. Em giải thích ý nghĩa của câu lệnh trong phần bài tập: --Hãy lấy tất cả các tên Country và City không trùng lặp từ 3 bảng Suppliers, Orders, Customers --Tên của những khách hàng đến từ đất nước bắt đầu bằng chữ U --Nhà cung cấp đến từ thành phố LonDon --Giao hàng đến đất nước USA
Cảm ơn thầy vì bài giảng hay ạ, em xin gửi bài tập -- bt1: giải thích ý nghĩa câu lệnh dưới đây select City, Country from Customers where Country like 'U%' --> Lấy ra TP và QG từ bảng Customers với đk QG bắt đầu bằng U union --> kết hợp truy vấn 1 và 2 select City, Country from Suppliers where City = 'London' --> Lấy ra TP và QG từ bảng Suppliers với đk TP là London union --> kết hợp bộ (1&2) với truy vấn 3 select ShipCity, ShipCountry from Orders where ShipCountry = 'USA' --> Lấy ra TP và QG từ bảng Orders với đk QG là USA ;
Bài giảng rất hữu ích cảm ơn thầy ạ -- Giải thích: Liệt kê thành phố và các quốc gia không trùng lặp của 3 bảng khách hàng, nhà cung cấp và bảng đơn hàng, -- điều kiện (1) bảng Customers chỉ lấy các quốc gia có chứa chữ U đầu tiên -- (2) ở bảng Suppliers chỉ lấy các hàng có thành phố = 'London' -- (3) ở bảng Orders chỉ lấy các quốc gia ='USA'
Ý nghĩa câu lệnh BT1: Liệt kê tên Thành Phố và Quốc Gia có: 1/ khách hàng thuộc các quốc gia có tên bắt đầu bằng chữ U, hoặc 2/ có các nhà cung cáp ở thành phố London, hoặc 3/ đơn hàng được ship đến USA Lưu ý: Bỏ các kqua trùng lặp.
BT1: lấy tất cả các quốc gia và thành phố từ bảng đơn hàng, khách hàng và nhà cung cấp thoả 1 trong 3 điều kiện: 1. quốc qua của bảng khách hàng bắt đầu bằng chữ 'U' 2. thành phố của nhà cung cấp là 'london' 3. quốc gia nhận hàng là 'usa'
BT1: Ý nghĩa câu lệnh là liệt kê các thành phố và đất nước không bị trùng lặp, trong đó: - Đất nước của khách hàng bắt đầu bằng chữ U - TNhà cung cấp ở London - Đơn hàng được vận chuyển đến USA
Em xin giải thích ý nghĩa trong phần BT: --Lấy tất cả các thành phố và quốc gia không trùng lặp từ 3 bảng Customers, Suppliers, Orders --Tìm khách hàng có Quốc gia bắt đầu = U --Tìm nhà cung cấp có tên thành phố = London --Tìm Quốc gia vận chuyển đến là Mỹ.
Em cảm ơn thầy SELECT [City],[Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%' Giải thích: Liệt kê các quốc gia có tên bắt đầu bằng chữ U UNION SELECT [City],[Country] FROM [dbo].[Suppliers] WHERE [City] = 'LONDON' Giải thích: Liệt kê các thành phố là LONDON sau đó tổng hợp lại với ý trên rồi in ra màn hình các thành phố và quốc gia k trùng lặp UNION SELECT [ShipCity],[ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA'; Giải thích: Liệt kê quốc gia USA sau đó tổng hợp với 2 ý trên r in ra màn hình các thành phố và quốc gia k trùng lặp
-- BÀI TẬP 01: Hãy viết và thực hành lại câu lệnh truy vấn bên dưới, sau đó hãy "Comment": giải thích ý nghĩa câu lệnh: SELECT City, Country FROM dbo.Customers WHERE Country LIKE 'U%' UNION SELECT City, Country FROM dbo.Suppliers WHERE City = 'London' UNION SELECT ShipCity, ShipCountry FROM dbo.Orders WHERE ShipCountry = 'USA'; ->KẾT QUẢ: 14 ROWS ----giải thích ----- ## bảng Customers: - Câu lệnh chọn những quốc gia có giá trị bắt đầu bằng chữ U, - Cột City không có giá trị trùng lặp => Kết quả: 14 dòng thỏa điều kiện; ## bảng Suppliers: - Chỉ có 1 giá trị duy nhất thỏa điều kiện City = London; ## bảng Orders: - Câu lệnh hiển thị 12 giá trị ko trùng lặp ở cột ShipCity và cùng thỏa điều kiện ShipCountry = 'USA' ===> Kết luận: truy vấn từ bảng Suppliers và bảng Orders chính là tập hợp truy vấn con của bảng Customers và các giá trị nằm trong kết quả của câu truy vấn từ bảng Customers. Trên đay là cách hiểu của em, có gì sai sót mong thầy chỉ dạy lại ạ. em cảm ơn.
ĐÂY là suy nghĩ của em về bài tập thầy giao select c.City, c.Country --20 ROWS from Customers as c where c.Country LIKE 'U%' --tên quốc gia phải có chữ U đầu tiên --14 ROWS union select s.City, s.Country -- 1 ROWS --14 ROWS from Suppliers as s where s.City = 'London' --tên thành phố phải là London union all select o.ShipCity, o.ShipCountry --122 ROWS from Orders as o where o.ShipCountry = 'USA'; --tên quốc gia phải là USA --Khi em nhóm 2 cái là cus và sup thì chỉ xuất hiện 14 dòng thông qua union --còn khi dùng union all xuất hiện là 21 và bị trùng lập là 7 trùng 'London' là 6 -- và 'Portland' là 1. Nhóm results ở trên 14 với bảng orders bằng câu lệnh --union all ta được 136 rows nhưng dùng union chỉ còn 14 => 136 - x = 14 , x= 122 dòng --bị trùng
--VD4: Hãy liệt kê các thành phô và quốc gia ở 3 bảng --Với khách hàng đến từ quốc gia bắt đầu bằng chứ 'U' --Tên nhà cung cấp đến từ thành phố là London --Vận chuyển đến quốc gia 'USA' --Bỏ qua các kết quả trùng lặp
-- Hãy thực thi và giải thích câu lệnh sau: SELECT City, Country FROM Customers WHERE Country LIKE 'U%' UNION SELECT City, Country FROM Suppliers WHERE City LIKE 'London' UNION SELECT ShipCity, ShipCountry FROM Orders WHERE ShipCountry LIKE 'USA' -- Giải thích: Câu lệnh này dùng để lấy những đơn hàng nào có quốc gia để giao hàng đến là USE -- và những khách hàng có quốc gia bắt đầu bằng 'U' và có nhà công cấp ở London và các dòng không trùng lập -- Thử thách: Hãy liệt kê những sản phẩm (ProductID và Uniprice) tồn tại trong bảng Order Details và Products -- dùng UNION và UNION ALL
-- Bài tập 1: -- Hiển thị ra các thành phố và quốc gia -- Tên quốc gia Bắt đầu bằng 'U' -- Hoặc có tên thành phố là 'London' -- Hoặc quốc gia giao hàng là 'USA' -- Không có sự lặp lại giữa các bảng -- Thử thách 1: Hiển thị ra tất cả các quốc gia trong cơ sở dữ liệu này -- Trùng nhau hay không trùng nhau đều được
--TỪ 3 bảng Supplier,Customers,Orders,liệt kê ra danh sách city và country từ ba bảng này với các điều kiện: --table_Customers: Đất nước của khách hàng có tên bắt đầu bằng chữ U. --table_Suppliers: lấy ra thành phố khách hàng đến từ London. --table_Orders: lấy ra shipcountry từ USA. --Giải thích: Lấy ra danh sách tên các thành phố từ 3 bảng và các thành phố này đến từ đất nước bắt đầu bằng chữ 'U'. KQ: 14 rows
Cám ơn anh :) SELECT City, Country FROM dbo.Customers WHERE Country LIKE 'U%' -- 20 dòng - lấy dữ liệu city trong Customer UNION SELECT City, Country FROM dbo.Suppliers WHERE City = 'London' -- 1 dòng - lấy dữ liệu city = London trong Customer UNION SELECT ShipCity, ShipCountry FROM dbo.Orders WHERE ShipCountry = 'USA'; -- 122 dòng - lấy dữ liệu quốc gia ship đến là USD -- UNION có 14 dòng - lấy dữ liệu không trung lặp của city và country trong bảng -- Hãy lấy tất cả tên Country và City không trùng lặp có trong bảng Customers, Suppliers và Orders -- Tên quốc gia của Khách hàng bắt đầu bằng chữ U -- Tên thành phố của Nhà cung cấp là London -- Tên quốc gia có đơn hàng vận chuyển đến USA
- Giải thích: Liệt kê thành phố và các quốc gia không trùng lặp của 3 bảng khách hàng, nhà cung cấp và bảng đơn hàng, - điều kiện (1) bảng Customers chỉ lấy các quốc gia có chứa chữ U đầu tiên - (2) ở bảng Suppliers chỉ lấy các hàng có thành phố = 'London' - (3) ở bảng Orders chỉ lấy các quốc gia ='USA'
--liệt kê các thành phố và quốc gia có: -- các thành phố trong các quốc gia với điều kiện quốc gia đó bắt đầu bằng chữ 'U' -- hoặc có các quốc gia có thành phố là 'London' -- hoặc có các thành phố được vận chuyển hàng tới, với điều kiện là thành phố đó ở quốc gia'USA'
Câu truy vấn 1: Hiển thị tên thanh phố và quốc gia trong bảng Customers với đk lên country bắt đầu bằng chữ u Câu truy vấn 2: Hiển thị tên thanh phố và quốc gia trong bảng Suppliers với đk tên thành phố là LonDon Câu truy vấn 3: Hiển thị tên thanh phố và quốc gia đc vận chuyển trong bảng với đk quốc gia đc vân chuyển là USA
Em xin giải bài tập: 1/ Chọn ra các thành phố và đất nước bắt đầu bằng chữ U trong bẳng khách hàng 2/ Chọn ra các thành phố và đất nước có thành phố là London trong bảng Suppliers 3/ Chọn ra các thành phố và đất nước mà đất nước là USA trong bảng Orders UNION: Tập hợp giao thoa giữa kết quả 3 câu lệnh và loại bỏ kết quả trùng lặp
em xin giải bài tập : - từ bảng Customers lấy ra đất nước có tên bắt đầu bằng U - từ bảng Suppliers: lấy ra thành phố đến từ London - từ bảng Orders: lấy ra shipcountry là USA sau đó UNION bảng Customers, Suppliers : loại bỏ những thành phần trùng trong 2 bảng, sau đó hợp lại được bảng mới sau đó UNION bảng mới thu được với bảng Orders: loại bỏ những thành phần trùng trong bảng Orders (Vì bảng mới đã distinct rồi nên không cần thao tác lọc trùng) , sau đó hợp 2 bảng lại với nhau ta thu được kết quả cần tìm.
select city,Country from Customers where Country like 'U%' union Select city, Country from Suppliers where City = 'London' union select ShipCity, ShipCountry from Orders where ShipCountry = 'USA' --Từ ba bảng Customers,Suppliers,Orders --hãy lấy ra tất cả các tên thành phố và đất nước(không trùng lặp) --trong đó các khách hàng đến từ đất nước bắt đầu với 'U' --các đơn hàn được cung cấp từ thành phố 'London' --và được giao đến USA
giải thích bt1 Hãy liệt kê toàn bộ các thành phố và quốc gia tồn tại trong 3 Tables customers, suppliers và orders không trùng lặp có - khánh hàng đến từ quốc gia bắt đầu bằng chữ U, hoặc - nhân viên đến từ thành phố London, hoặc - đơn hàng vận chuyển đến hoa kỳ
Xin cảm ơn video của bạn Mình xin giải thích ý nghĩa câu lệnh trong phần bài tập: Hãy lấy ra tất cả tên thành phố, và quốc gia không trùng lặp từ 3 bảng: Customers, Suppliers, và Orders với điều kiện: -- Khách hàng có Tên quốc gia bắt đầu bằng chữ U (các ký tự sau là bất kỳ, có thể có hoặc không có) -- hoặc nhà cung cấp có tên thành phố là 'London' -- hoặc đơn hàng được ship đến USA (theo mình điều kiện 3 trùng điều kiện 1, có thể thay bằng tên quốc gia khác như: France, Germany, ...)
Ý nghĩa của câu lệnh Liệt kê ra các thành phố và quốc gia : -- bắt đầu bằng chữ U -- hoặc tên thành phố là London -- hoặc tên thành phố được giao hàng có quốc gia là USA
Ý nghĩa câu lệnh: Từ 3 bảng, hãy liệt tất cả đất nước và thành phố có khách hàng đến từ mà bắt đầu bằng chữ U trong tên quốc gia và được giao tới quốc gia là USA. Với điều kiện nhà cung cấp đến từ thành phố London
--BT1: Select c.City, c.Country From [dbo].Customers as c Where [Country] LIKE 'U%' -- Tìm ra cá thành phố với quốc qua bắt đầu bằng chữ -U UNION Select s.City,s.Country From [dbo].Suppliers as s Where [City] = 'London' -- Tìm ra quốc gia có thành phố là london UNION Select o.[ShipCity], o.ShipCountry From [dbo].[Orders] as o Where o.[ShipCountry] ='USA' -- Tìm ra thành phố có quốc gia là USA ---Ý nghĩa là : Liệt kê các thành phố theo điều kiện mà không bị trùng lặp và xem quốc gia mà chúng thuộc về
--Lấy ra tất cả các quốc gia và thành phố KHÔNG TRÙNG LẶP ở trong 3 bảng Suppliers, Customers và Orders -- Ở bảng Customers KHÁCH HÀNG CÓ Quốc gia có kí tự U đầu tiên HOẶC -- Ở bảng Suppliers chỉ đưa ra NHÀ CUNG CẤP Ở thành phố London HOẶC -- ở bảng orders chỉ lấy ra ĐƠN HÀNG GIAO ĐẾN là USA
BÀI TẬP: 1. Hãy lấy ra những thành phố và quốc gia trong bảng Customers trong đó chỉ lấy quốc gia bắt đầu bằng chứ 'U' 2. Lấy ra những thành phố và quốc gia trong bảng Suppliers, điều kiện thành phố là 'London' 3. Lấy ra ShipCity và ShipCountry mà ShipCountry là 'USA' Tổng hợp lại bảng gồm thành phố và quốc gia với 3 điều kiện trên và không lấy giá trị bị lặp. THỬ THÁCH: 1. Liệt kê tất cả các Region từ bảng Orders và Customers, các giá trị không được lặp nhau và không lấy giá trị NULL.
Liệt kê các thành phố và quốc gia của khách hàng có quốc gia bắt đầu bằng chữ U hoặc thành phố của nhà cung cấp là London hoặc quốc gia giao hàng là USA
-- Giải BT SELECT distinct [City], [Country] FROM [dbo]. [Customers] WHERE [Country] LIKE 'U%' UNION SELECT [City], [Country] FROM [dbo]. [Suppliers] WHERE [City] = 'London' UNION SELECT Distinct [ShipCity], [ShipCountry] FROM [dbo]. [Orders] WHERE [ShipCountry]='USA'; -- Kết quả 14 dòng -- Giải thích :Ta lấy DISTINCT cho từng điều kiện , ta được kết quả ĐK 1 : 14 dòng , ĐK 2 : 1 dòng , ĐK 3 : 12 dòng . Và khi chạy code thì SQL sẽ kiểm tra từ trên xuống lấy hết quả trừ đi cách kết quả giống nhau và không giao nhau . -- Thử thách -- 1. Giải lại ví dụ 3 nhưng thay vì tìm Country ta đi tìm City (Bảng Customers , Bảng Suppliers)
BT1: Đối với UNION thứ nhất chúng ta sẽ có dc ds các khách hàng từ các nước ko bắt đầu bằng chữ 'U' và thành phố của các nhà cung cấp phải là London. Đến với UNION thứ 2 ta gộp UNION thứ nhất với các Quốc Gia được gửi tới là USA *Các dữ liệu giữa các bảng ko bị trùng lặp
SELECT City, Country FROM Customers WHERE Country LIKE 'U%' UNION SELECT City, Country FROM Suppliers WHERE City = 'London' UNION SELECT ShipCity , ShipCountry FROM Orders WHERE ShipCountry = 'USA'; -- Truy vấn đầu tiên: Lấy danh sách các thành phố và quốc gia của khách hàng có quốc gia bắt đầu bằng chữ 'U' nhưng chỉ lấy hai cột City và Country. -- Truy vấn thứ hai : Lấy là danh sách các thành phố và quốc gia của các nhà cung cấp có trụ sở ở London nhưng chỉ lấy hai cột City và Country. -- Truy vấn thứ 3 : Lấy là danh sách các thành phố và quốc gia của các đơn đặt hàng được giao đến từ USA. -- Sau cùng hợp ba danh sách lại, loại bỏ trùng lặp và lấy tên cột của truy vấn đầu tiên.
SELECT distinct [City], [Country] FROM [dbo]. [Customers] WHERE [Country] LIKE 'U%' UNION SELECT [City], [Country] FROM [dbo]. [Suppliers] WHERE [City] = 'London' UNION SELECT Distinct [ShipCity], [ShipCountry] FROM [dbo]. [Orders] WHERE [ShipCountry]='USA'; -> Ý nghĩa: Gộp kết quả và in ra màn hình thông tin các thành phố (distinct) cùng với quốc gia của thành phố đó với điều kiện: 1. Thành phố của Customers có Country bắt đầu bằng chữ U 2. Thành phố là London cùng với Country của nó tại bảng Suppliers 3. Thành phố của những đơn hàng có Ship Country là USA
giải Bt: 1/ câu truy van 1 in ra 20 row được hiển thị ra và các quốc gia có thể trung nhau Câu truy van 2 in ra 1 row, tuc la chi co 1 quoc gia la london trong colum cau truy van 3 in ra nhung quoc gia trong table order là 13 row, có thể trùng tên quốc gia 2/ Khi minh sử lý riêng câu truy vấn 1 union với câu truy vấn 2 mình nhận lại được 14 row, điều này cho thấy rằng ở bảng supplier có nhũng quốc gia bắt đầu bằng tên U (UK, USA) và nó trả về cho mình các quốc gia voi ten bat dau u ma ko trung lap Tg tự set câu truy vấn 2 và 3 mình đc 13row, va cung tra ve cac ten khong trung lap 3/ ghét tất cả các câu lại với nhau mình được 14 row, điều này cho thấy rằng có thể ở trong tbCus có country mà tblOrder không có vì số lượng row khi mình ghép trung gian với câu truy vấn 2 lệch nhau là 1 Đây là cách mình hiểu câu lệnh được thực hiện, nếu có sai hay có câu hỏi mong được các bạn góp ý và giúp đỡ
Giải thích: SELECT [City], [Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%' --LK cac qg bat dau bang chu U UNION --nối 2 cột lại, nếu 2 dòng trở lên có 2 cột trùng hết giá trị với nhau thì chỉ in 1, còn 2 dòng có 1 trong 2 cột khác thì k xóa --đồng thời nó nối theo kiểu or tức là thỏa mãn 1 trong 2 là hàng đc in chứ k phải thỏa mãn 2 câu lệnh 1 và 2 SELECT [City], [Country] FROM [dbo].[Suppliers] WHERE [City] = 'London' --LK tp co ten london UNION SELECT [ShipCity], [ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA';--in ra các qg USA
SELECT [City], [Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%' UNION SELECT [City], [Country] FROM [dbo].[Suppliers] WHERE [City] = 'London' UNION SELECT [ShipCity], [ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA'; dòng này em nghĩ nó sẽ in ra Tất cả các địa chỉ gồm thành phố + country : Tên quốc gia bắt đầu bằng U => chỉ có UK, USA , cùng với câu lệnh UNION nên các thành phố này sẽ ko trùng lặp => in ra danh sách tên thành phố của USA - UK từ 3 bảng Customers, Suppliers, Orders
--BT1: --"comment: " -- lấy tên TP, qgia có chữ cái bắt đầu = 'U' --từ bẳng [Customers] --hoặc --lấy tên TP=London , qgia --hoặc --lấy tên tp, qgia='USA' --của các đơn hàng cần ship SELECT [City], [Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%' UNION SELECT [City], [Country] FROM [dbo].[Suppliers] WHERE [City]='London' UNION SELECT [ShipCity], [ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry]='USA';
SELECT [City], [Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%' UNION SELECT [City], [Country] FROM [dbo].[Suppliers] WHERE [City] = 'London' UNION SELECT [ShipCity], [ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA'; Kết quả: 14 rows
select [City],[Country] from [dbo].[Customers] where [Country] like 'U%' union select [City],[Country] from [dbo].[Suppliers] where [City]='London' union select [ShipCity],[ShipCountry] from [dbo].[Orders] where [ShipCountry]='USA' kết quả 14 dòng liệt kê những thành phố và quốc gia trong đó quốc gia của khách hàng từ chữ U đầu,và thành phố của nhà cung cấp bắt đầu cũng bằng chữ london, và cuối cùng là đơn hàng giao đến quốc gia USA Nếu đúng thầy comment đúng ,nếu sai thầy comment sai giúp em ạ,em rất muốn biết bài tập của mình làm đúng hay sai để sửa ạ ,em cảm ơn
Select City, Country From Customers Where Country LIKE 'U%' --Lay ra City, Country trong bang Cus voi Couutry co chu cai dau tien la A UNION Select City, Country From Suppliers Where City = 'London' --Lay ra City, Country trong bang Sup voi Couutry la 'London' UNION Select ShipCity, ShipCountry From Orders Where ShipCountry = 'USA'; --Lay ra Ship City, Ship Country trong bang Order voi Ship Couutry la 'USA' -- --> Ket qua tra ve la 1 Table gom 2 Field la ket hop cua 3 dap an tren 14 Rows
23:32 hình như là do 1 orderID thì có thể sẽ mua nhiều sản phẩm, Vd: order id 1 mua 3 sản phẩm, khi không dùng union nếu cả 3 sản phẩm mua với quantity là 20 (thỏa mãn where) thì kết quả orderID 1 đc hiện lên 3 lần còn trong union thì nó loại trung lặp nên chỉ hiện 1 lần đúng k ạ?
SELECT [City],[Country] --I FROM [dbo].[Customers] WHERE [Country] LIKE 'U%'--20 rows UNION SELECT [City],[Country] --II FROM [dbo].[Suppliers] WHERE [City] = 'London'--1 rows UNION SELECT [ShipCity],[ShipCountry] --III FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA'; --122 rows -- LAST RESULT = 14 rows --I: Tu bang Customers loc nhung thanh pho co ten quoc gia bat dau bang chu U --II : Tu bang Suppliers loc ra quoc gia co ten thanh pho London --III: Tu bang Orders loc nhung thanh pho co ShipCountry la USA --I UNION II = 14 rows =DISTINCT City voi dieu kien WHERE [Country] LIKE 'U%' --I UNION II UNION III : tiep tuc loc them nhung thanh pho co quoc gia la USA khong trung lap (I,II) --III ∈(I ∩ II)
In my opinion: --lập danh sách khách hàng quốc gia là USA, UK, sản phẩm đến từ thành phố London và khách hàng muốn đặt hàng đến quốc gia USA, Hopefully, Someone can check it for me
Em xin cảm ơn video của anh ạ.
Em giải thích ý nghĩa của câu lệnh trong phần bài tập:
--Hãy lấy tất cả các tên Country và City không trùng lặp từ 3 bảng Suppliers, Orders, Customers
--Tên của những khách hàng đến từ đất nước bắt đầu bằng chữ U
--Nhà cung cấp đến từ thành phố LonDon
--Giao hàng đến đất nước USA
Cảm ơn thầy vì bài giảng hay ạ, em xin gửi bài tập
-- bt1: giải thích ý nghĩa câu lệnh dưới đây
select City, Country
from Customers
where Country like 'U%' --> Lấy ra TP và QG từ bảng Customers với đk QG bắt đầu bằng U
union --> kết hợp truy vấn 1 và 2
select City, Country
from Suppliers
where City = 'London' --> Lấy ra TP và QG từ bảng Suppliers với đk TP là London
union --> kết hợp bộ (1&2) với truy vấn 3
select ShipCity, ShipCountry
from Orders
where ShipCountry = 'USA' --> Lấy ra TP và QG từ bảng Orders với đk QG là USA
;
Bài giảng rất hữu ích cảm ơn thầy ạ
-- Giải thích: Liệt kê thành phố và các quốc gia không trùng lặp của 3 bảng khách hàng, nhà cung cấp và bảng đơn hàng,
-- điều kiện (1) bảng Customers chỉ lấy các quốc gia có chứa chữ U đầu tiên
-- (2) ở bảng Suppliers chỉ lấy các hàng có thành phố = 'London'
-- (3) ở bảng Orders chỉ lấy các quốc gia ='USA'
Ý nghĩa câu lệnh BT1: Liệt kê tên Thành Phố và Quốc Gia có:
1/ khách hàng thuộc các quốc gia có tên bắt đầu bằng chữ U, hoặc
2/ có các nhà cung cáp ở thành phố London, hoặc
3/ đơn hàng được ship đến USA
Lưu ý: Bỏ các kqua trùng lặp.
BT1: lấy tất cả các quốc gia và thành phố từ bảng đơn hàng, khách hàng và nhà cung cấp thoả 1 trong 3 điều kiện:
1. quốc qua của bảng khách hàng bắt đầu bằng chữ 'U'
2. thành phố của nhà cung cấp là 'london'
3. quốc gia nhận hàng là 'usa'
BT1: Ý nghĩa câu lệnh là liệt kê các thành phố và đất nước không bị trùng lặp, trong đó:
- Đất nước của khách hàng bắt đầu bằng chữ U
- TNhà cung cấp ở London
- Đơn hàng được vận chuyển đến USA
Em xin giải thích ý nghĩa trong phần BT:
--Lấy tất cả các thành phố và quốc gia không trùng lặp từ 3 bảng Customers, Suppliers, Orders
--Tìm khách hàng có Quốc gia bắt đầu = U
--Tìm nhà cung cấp có tên thành phố = London
--Tìm Quốc gia vận chuyển đến là Mỹ.
Em cảm ơn thầy
SELECT [City],[Country]
FROM [dbo].[Customers]
WHERE [Country] LIKE 'U%'
Giải thích: Liệt kê các quốc gia có tên bắt đầu bằng chữ U
UNION
SELECT [City],[Country]
FROM [dbo].[Suppliers]
WHERE [City] = 'LONDON'
Giải thích: Liệt kê các thành phố là LONDON sau đó tổng hợp lại với ý trên rồi in ra màn hình các thành phố và quốc gia k trùng lặp
UNION
SELECT [ShipCity],[ShipCountry]
FROM [dbo].[Orders]
WHERE [ShipCountry] = 'USA';
Giải thích: Liệt kê quốc gia USA sau đó tổng hợp với 2 ý trên r in ra màn hình các thành phố và quốc gia k trùng lặp
-- BÀI TẬP 01: Hãy viết và thực hành lại câu lệnh truy vấn bên dưới, sau đó hãy "Comment": giải thích ý nghĩa câu lệnh:
SELECT City, Country
FROM dbo.Customers
WHERE Country LIKE 'U%'
UNION
SELECT City, Country
FROM dbo.Suppliers
WHERE City = 'London'
UNION
SELECT ShipCity, ShipCountry
FROM dbo.Orders
WHERE ShipCountry = 'USA';
->KẾT QUẢ: 14 ROWS
----giải thích -----
## bảng Customers:
- Câu lệnh chọn những quốc gia có giá trị bắt đầu bằng chữ U,
- Cột City không có giá trị trùng lặp
=> Kết quả: 14 dòng thỏa điều kiện;
## bảng Suppliers:
- Chỉ có 1 giá trị duy nhất thỏa điều kiện City = London;
## bảng Orders:
- Câu lệnh hiển thị 12 giá trị ko trùng lặp ở cột ShipCity và cùng thỏa điều kiện ShipCountry = 'USA'
===> Kết luận: truy vấn từ bảng Suppliers và bảng Orders chính là tập hợp truy vấn con của bảng Customers và các giá trị nằm trong kết quả của câu truy vấn từ bảng Customers.
Trên đay là cách hiểu của em, có gì sai sót mong thầy chỉ dạy lại ạ.
em cảm ơn.
ĐÂY là suy nghĩ của em về bài tập thầy giao
select c.City, c.Country --20 ROWS
from Customers as c
where c.Country LIKE 'U%' --tên quốc gia phải có chữ U đầu tiên --14 ROWS
union
select s.City, s.Country -- 1 ROWS --14 ROWS
from Suppliers as s
where s.City = 'London' --tên thành phố phải là London
union all
select o.ShipCity, o.ShipCountry --122 ROWS
from Orders as o
where o.ShipCountry = 'USA'; --tên quốc gia phải là USA
--Khi em nhóm 2 cái là cus và sup thì chỉ xuất hiện 14 dòng thông qua union
--còn khi dùng union all xuất hiện là 21 và bị trùng lập là 7 trùng 'London' là 6
-- và 'Portland' là 1. Nhóm results ở trên 14 với bảng orders bằng câu lệnh
--union all ta được 136 rows nhưng dùng union chỉ còn 14 => 136 - x = 14 , x= 122 dòng
--bị trùng
--VD4: Hãy liệt kê các thành phô và quốc gia ở 3 bảng
--Với khách hàng đến từ quốc gia bắt đầu bằng chứ 'U'
--Tên nhà cung cấp đến từ thành phố là London
--Vận chuyển đến quốc gia 'USA'
--Bỏ qua các kết quả trùng lặp
-- Hãy thực thi và giải thích câu lệnh sau:
SELECT City, Country FROM Customers WHERE Country LIKE 'U%'
UNION
SELECT City, Country FROM Suppliers WHERE City LIKE 'London'
UNION
SELECT ShipCity, ShipCountry FROM Orders WHERE ShipCountry LIKE 'USA'
-- Giải thích: Câu lệnh này dùng để lấy những đơn hàng nào có quốc gia để giao hàng đến là USE
-- và những khách hàng có quốc gia bắt đầu bằng 'U' và có nhà công cấp ở London và các dòng không trùng lập
-- Thử thách: Hãy liệt kê những sản phẩm (ProductID và Uniprice) tồn tại trong bảng Order Details và Products
-- dùng UNION và UNION ALL
-- Bài tập 1:
-- Hiển thị ra các thành phố và quốc gia
-- Tên quốc gia Bắt đầu bằng 'U'
-- Hoặc có tên thành phố là 'London'
-- Hoặc quốc gia giao hàng là 'USA'
-- Không có sự lặp lại giữa các bảng
-- Thử thách 1: Hiển thị ra tất cả các quốc gia trong cơ sở dữ liệu này
-- Trùng nhau hay không trùng nhau đều được
--TỪ 3 bảng Supplier,Customers,Orders,liệt kê ra danh sách city và country từ ba bảng này với các điều kiện:
--table_Customers: Đất nước của khách hàng có tên bắt đầu bằng chữ U.
--table_Suppliers: lấy ra thành phố khách hàng đến từ London.
--table_Orders: lấy ra shipcountry từ USA.
--Giải thích: Lấy ra danh sách tên các thành phố từ 3 bảng và các thành phố này đến từ đất nước bắt đầu bằng chữ 'U'.
KQ: 14 rows
Cám ơn anh :)
SELECT City, Country
FROM dbo.Customers
WHERE Country LIKE 'U%'
-- 20 dòng - lấy dữ liệu city trong Customer
UNION
SELECT City, Country
FROM dbo.Suppliers
WHERE City = 'London'
-- 1 dòng - lấy dữ liệu city = London trong Customer
UNION
SELECT ShipCity, ShipCountry
FROM dbo.Orders
WHERE ShipCountry = 'USA';
-- 122 dòng - lấy dữ liệu quốc gia ship đến là USD
-- UNION có 14 dòng - lấy dữ liệu không trung lặp của city và country trong bảng
-- Hãy lấy tất cả tên Country và City không trùng lặp có trong bảng Customers, Suppliers và Orders
-- Tên quốc gia của Khách hàng bắt đầu bằng chữ U
-- Tên thành phố của Nhà cung cấp là London
-- Tên quốc gia có đơn hàng vận chuyển đến USA
- Giải thích: Liệt kê thành phố và các quốc gia không trùng lặp của 3 bảng khách hàng, nhà cung cấp và bảng đơn hàng,
- điều kiện (1) bảng Customers chỉ lấy các quốc gia có chứa chữ U đầu tiên
- (2) ở bảng Suppliers chỉ lấy các hàng có thành phố = 'London'
- (3) ở bảng Orders chỉ lấy các quốc gia ='USA'
--liệt kê các thành phố và quốc gia có:
-- các thành phố trong các quốc gia với điều kiện quốc gia đó bắt đầu bằng chữ 'U'
-- hoặc có các quốc gia có thành phố là 'London'
-- hoặc có các thành phố được vận chuyển hàng tới, với điều kiện là thành phố đó ở quốc gia'USA'
Câu truy vấn 1: Hiển thị tên thanh phố và quốc gia trong bảng Customers với đk lên country bắt đầu bằng chữ u
Câu truy vấn 2: Hiển thị tên thanh phố và quốc gia trong bảng Suppliers với đk tên thành phố là LonDon
Câu truy vấn 3: Hiển thị tên thanh phố và quốc gia đc vận chuyển trong bảng với đk quốc gia đc vân chuyển là USA
Em xin giải bài tập:
1/ Chọn ra các thành phố và đất nước bắt đầu bằng chữ U trong bẳng khách hàng
2/ Chọn ra các thành phố và đất nước có thành phố là London trong bảng Suppliers
3/ Chọn ra các thành phố và đất nước mà đất nước là USA trong bảng Orders
UNION: Tập hợp giao thoa giữa kết quả 3 câu lệnh và loại bỏ kết quả trùng lặp
em xin giải bài tập :
- từ bảng Customers lấy ra đất nước có tên bắt đầu bằng U
- từ bảng Suppliers: lấy ra thành phố đến từ London
- từ bảng Orders: lấy ra shipcountry là USA
sau đó UNION bảng Customers, Suppliers : loại bỏ những thành phần trùng trong 2 bảng, sau đó hợp lại được bảng mới
sau đó UNION bảng mới thu được với bảng Orders: loại bỏ những thành phần trùng trong bảng Orders (Vì bảng mới đã distinct rồi nên không cần thao tác lọc trùng) ,
sau đó hợp 2 bảng lại với nhau ta thu được kết quả cần tìm.
select city,Country
from Customers
where Country like 'U%'
union
Select city, Country
from Suppliers
where City = 'London'
union
select ShipCity, ShipCountry
from Orders
where ShipCountry = 'USA'
--Từ ba bảng Customers,Suppliers,Orders
--hãy lấy ra tất cả các tên thành phố và đất nước(không trùng lặp)
--trong đó các khách hàng đến từ đất nước bắt đầu với 'U'
--các đơn hàn được cung cấp từ thành phố 'London'
--và được giao đến USA
Cảm ơn anh, đang thi nên không học được, thi xong em sẽ tiếp tục 😂😂
giải thích bt1
Hãy liệt kê toàn bộ các thành phố và quốc gia tồn tại trong 3 Tables customers, suppliers và orders
không trùng lặp có
- khánh hàng đến từ quốc gia bắt đầu bằng chữ U, hoặc
- nhân viên đến từ thành phố London, hoặc
- đơn hàng vận chuyển đến hoa kỳ
Xin cảm ơn video của bạn
Mình xin giải thích ý nghĩa câu lệnh trong phần bài tập:
Hãy lấy ra tất cả tên thành phố, và quốc gia không trùng lặp từ 3 bảng: Customers, Suppliers, và Orders với điều kiện:
-- Khách hàng có Tên quốc gia bắt đầu bằng chữ U (các ký tự sau là bất kỳ, có thể có hoặc không có)
-- hoặc nhà cung cấp có tên thành phố là 'London'
-- hoặc đơn hàng được ship đến USA
(theo mình điều kiện 3 trùng điều kiện 1, có thể thay bằng tên quốc gia khác như: France, Germany, ...)
Ý nghĩa của câu lệnh
Liệt kê ra các thành phố và quốc gia :
-- bắt đầu bằng chữ U
-- hoặc tên thành phố là London
-- hoặc tên thành phố được giao hàng có quốc gia là USA
Ý nghĩa câu lệnh: Từ 3 bảng, hãy liệt tất cả đất nước và thành phố có khách hàng đến từ mà bắt đầu bằng chữ U trong tên quốc gia và được giao tới quốc gia là USA. Với điều kiện nhà cung cấp đến từ thành phố London
--BT1:
Select c.City, c.Country
From [dbo].Customers as c
Where [Country] LIKE 'U%' -- Tìm ra cá thành phố với quốc qua bắt đầu bằng chữ -U
UNION
Select s.City,s.Country
From [dbo].Suppliers as s
Where [City] = 'London' -- Tìm ra quốc gia có thành phố là london
UNION
Select o.[ShipCity], o.ShipCountry
From [dbo].[Orders] as o
Where o.[ShipCountry] ='USA' -- Tìm ra thành phố có quốc gia là USA
---Ý nghĩa là : Liệt kê các thành phố theo điều kiện mà không bị trùng lặp và xem quốc gia mà chúng thuộc về
--Lấy ra tất cả các quốc gia và thành phố KHÔNG TRÙNG LẶP ở trong 3 bảng Suppliers, Customers và Orders
-- Ở bảng Customers KHÁCH HÀNG CÓ Quốc gia có kí tự U đầu tiên HOẶC
-- Ở bảng Suppliers chỉ đưa ra NHÀ CUNG CẤP Ở thành phố London HOẶC
-- ở bảng orders chỉ lấy ra ĐƠN HÀNG GIAO ĐẾN là USA
BÀI TẬP:
1. Hãy lấy ra những thành phố và quốc gia trong bảng Customers trong đó chỉ lấy quốc gia bắt đầu bằng chứ 'U'
2. Lấy ra những thành phố và quốc gia trong bảng Suppliers, điều kiện thành phố là 'London'
3. Lấy ra ShipCity và ShipCountry mà ShipCountry là 'USA'
Tổng hợp lại bảng gồm thành phố và quốc gia với 3 điều kiện trên và không lấy giá trị bị lặp.
THỬ THÁCH: 1. Liệt kê tất cả các Region từ bảng Orders và Customers, các giá trị không được lặp nhau và không lấy giá trị NULL.
BT:
Liệt kê tên thành phố và quốc gia có:
+ khách hàng đến từ các quốc gia bắt đầu bằng chữ "U"
+ Thành phố London
+ Ship tới USA
Liệt kê các thành phố và quốc gia của khách hàng có quốc gia bắt đầu bằng chữ U hoặc thành phố của nhà cung cấp là London hoặc quốc gia giao hàng là USA
-- Giải BT
SELECT distinct [City], [Country]
FROM [dbo]. [Customers]
WHERE [Country] LIKE 'U%'
UNION
SELECT [City], [Country]
FROM [dbo]. [Suppliers]
WHERE [City] = 'London'
UNION
SELECT Distinct [ShipCity], [ShipCountry]
FROM [dbo]. [Orders]
WHERE [ShipCountry]='USA';
-- Kết quả 14 dòng
-- Giải thích :Ta lấy DISTINCT cho từng điều kiện , ta được kết quả ĐK 1 : 14 dòng , ĐK 2 : 1 dòng , ĐK 3 : 12 dòng . Và khi chạy code thì SQL sẽ kiểm tra từ trên xuống lấy hết quả trừ đi cách kết quả giống nhau và không giao nhau .
-- Thử thách
-- 1. Giải lại ví dụ 3 nhưng thay vì tìm Country ta đi tìm City (Bảng Customers , Bảng Suppliers)
BT1:
Đối với UNION thứ nhất chúng ta sẽ có dc ds các khách hàng từ các nước ko bắt đầu bằng chữ 'U' và thành phố của các nhà cung cấp phải là London.
Đến với UNION thứ 2 ta gộp UNION thứ nhất với các Quốc Gia được gửi tới là USA
*Các dữ liệu giữa các bảng ko bị trùng lặp
SELECT City, Country
FROM Customers
WHERE Country LIKE 'U%'
UNION
SELECT City, Country
FROM Suppliers
WHERE City = 'London'
UNION
SELECT ShipCity , ShipCountry
FROM Orders
WHERE ShipCountry = 'USA';
-- Truy vấn đầu tiên: Lấy danh sách các thành phố và quốc gia của khách hàng có quốc gia bắt đầu bằng chữ 'U' nhưng chỉ lấy hai cột City và Country.
-- Truy vấn thứ hai : Lấy là danh sách các thành phố và quốc gia của các nhà cung cấp có trụ sở ở London nhưng chỉ lấy hai cột City và Country.
-- Truy vấn thứ 3 : Lấy là danh sách các thành phố và quốc gia của các đơn đặt hàng được giao đến từ USA.
-- Sau cùng hợp ba danh sách lại, loại bỏ trùng lặp và lấy tên cột của truy vấn đầu tiên.
SELECT distinct [City], [Country]
FROM [dbo]. [Customers]
WHERE [Country] LIKE 'U%'
UNION
SELECT [City], [Country]
FROM [dbo]. [Suppliers]
WHERE [City] = 'London'
UNION
SELECT Distinct [ShipCity], [ShipCountry]
FROM [dbo]. [Orders]
WHERE [ShipCountry]='USA';
-> Ý nghĩa: Gộp kết quả và in ra màn hình thông tin các thành phố (distinct) cùng với quốc gia của thành phố đó với điều kiện:
1. Thành phố của Customers có Country bắt đầu bằng chữ U
2. Thành phố là London cùng với Country của nó tại bảng Suppliers
3. Thành phố của những đơn hàng có Ship Country là USA
giải Bt:
1/ câu truy van 1 in ra 20 row được hiển thị ra và các quốc gia có thể trung nhau
Câu truy van 2 in ra 1 row, tuc la chi co 1 quoc gia la london trong colum
cau truy van 3 in ra nhung quoc gia trong table order là 13 row, có thể trùng tên quốc gia
2/ Khi minh sử lý riêng câu truy vấn 1 union với câu truy vấn 2
mình nhận lại được 14 row, điều này cho thấy rằng ở bảng supplier có nhũng quốc gia bắt đầu bằng tên U (UK, USA)
và nó trả về cho mình các quốc gia voi ten bat dau u ma ko trung lap
Tg tự set câu truy vấn 2 và 3 mình đc 13row, va cung tra ve cac ten khong trung lap
3/ ghét tất cả các câu lại với nhau
mình được 14 row, điều này cho thấy rằng có thể ở trong tbCus có country mà tblOrder không có vì
số lượng row khi mình ghép trung gian với câu truy vấn 2 lệch nhau là 1
Đây là cách mình hiểu câu lệnh được thực hiện, nếu có sai hay có câu hỏi mong được các bạn góp ý và giúp đỡ
Giải thích: SELECT [City], [Country]
FROM [dbo].[Customers]
WHERE [Country] LIKE 'U%' --LK cac qg bat dau bang chu U
UNION --nối 2 cột lại, nếu 2 dòng trở lên có 2 cột trùng hết giá trị với nhau thì chỉ in 1, còn 2 dòng có 1 trong 2 cột khác thì k xóa
--đồng thời nó nối theo kiểu or tức là thỏa mãn 1 trong 2 là hàng đc in chứ k phải thỏa mãn 2 câu lệnh 1 và 2
SELECT [City], [Country]
FROM [dbo].[Suppliers]
WHERE [City] = 'London' --LK tp co ten london
UNION
SELECT [ShipCity], [ShipCountry]
FROM [dbo].[Orders]
WHERE [ShipCountry] = 'USA';--in ra các qg USA
SELECT [City], [Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%'
UNION
SELECT [City], [Country] FROM [dbo].[Suppliers] WHERE [City] = 'London'
UNION
SELECT [ShipCity], [ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA';
dòng này em nghĩ nó sẽ in ra Tất cả các địa chỉ gồm thành phố + country : Tên quốc gia bắt đầu bằng U => chỉ có UK, USA , cùng với câu lệnh UNION nên các thành phố này sẽ ko trùng lặp => in ra danh sách tên thành phố của USA - UK từ 3 bảng Customers, Suppliers, Orders
--BT1:
--"comment: "
-- lấy tên TP, qgia có chữ cái bắt đầu = 'U'
--từ bẳng [Customers]
--hoặc
--lấy tên TP=London , qgia
--hoặc
--lấy tên tp, qgia='USA'
--của các đơn hàng cần ship
SELECT [City], [Country]
FROM [dbo].[Customers]
WHERE [Country] LIKE 'U%'
UNION
SELECT [City], [Country]
FROM [dbo].[Suppliers]
WHERE [City]='London'
UNION
SELECT [ShipCity], [ShipCountry]
FROM [dbo].[Orders]
WHERE [ShipCountry]='USA';
SELECT [City], [Country] FROM [dbo].[Customers] WHERE [Country] LIKE 'U%'
UNION
SELECT [City], [Country] FROM [dbo].[Suppliers] WHERE [City] = 'London'
UNION
SELECT [ShipCity], [ShipCountry] FROM [dbo].[Orders] WHERE [ShipCountry] = 'USA';
Kết quả: 14 rows
select [City],[Country]
from [dbo].[Customers]
where [Country] like 'U%'
union
select [City],[Country]
from [dbo].[Suppliers]
where [City]='London'
union
select [ShipCity],[ShipCountry]
from [dbo].[Orders]
where [ShipCountry]='USA'
kết quả 14 dòng
liệt kê những thành phố và quốc gia trong đó quốc
gia của khách hàng từ chữ U đầu,và thành phố
của nhà cung cấp bắt đầu cũng bằng chữ london,
và cuối cùng là đơn hàng giao đến quốc gia USA
Nếu đúng thầy comment đúng ,nếu sai thầy comment sai giúp em ạ,em rất muốn biết bài tập của mình làm đúng hay sai để sửa ạ ,em cảm ơn
học thuật toán hả ae
Select City, Country
From Customers
Where Country LIKE 'U%' --Lay ra City, Country trong bang Cus voi Couutry co chu cai dau tien la A
UNION
Select City, Country
From Suppliers
Where City = 'London' --Lay ra City, Country trong bang Sup voi Couutry la 'London'
UNION
Select ShipCity, ShipCountry
From Orders
Where ShipCountry = 'USA'; --Lay ra Ship City, Ship Country trong bang Order voi Ship Couutry la 'USA'
-- --> Ket qua tra ve la 1 Table gom 2 Field la ket hop cua 3 dap an tren
14 Rows
23:32 hình như là do 1 orderID thì có thể sẽ mua nhiều sản phẩm, Vd: order id 1 mua 3 sản phẩm, khi không dùng union nếu cả 3 sản phẩm mua với quantity là 20 (thỏa mãn where) thì kết quả orderID 1 đc hiện lên 3 lần còn trong union thì nó loại trung lặp nên chỉ hiện 1 lần đúng k ạ?
SELECT [City],[Country] --I
FROM [dbo].[Customers]
WHERE [Country] LIKE 'U%'--20 rows
UNION
SELECT [City],[Country] --II
FROM [dbo].[Suppliers]
WHERE [City] = 'London'--1 rows
UNION
SELECT [ShipCity],[ShipCountry] --III
FROM [dbo].[Orders]
WHERE [ShipCountry] = 'USA'; --122 rows
-- LAST RESULT = 14 rows
--I: Tu bang Customers loc nhung thanh pho co ten quoc gia bat dau bang chu U
--II : Tu bang Suppliers loc ra quoc gia co ten thanh pho London
--III: Tu bang Orders loc nhung thanh pho co ShipCountry la USA
--I UNION II = 14 rows =DISTINCT City voi dieu kien WHERE [Country] LIKE 'U%'
--I UNION II UNION III : tiep tuc loc them nhung thanh pho co quoc gia la USA khong trung lap (I,II)
--III ∈(I ∩ II)
Rất tốt, cố học thêm tí nữa. Chúc bạn học thật tốt nhé. Vào nhóm facebook.com/groups/titv.vn để cùng trao đổi thêm về lập trình nhé.
In my opinion:
--lập danh sách khách hàng quốc gia là USA, UK, sản phẩm đến từ thành phố London và khách hàng muốn đặt hàng đến quốc gia USA,
Hopefully, Someone can check it for me