Tác giả: Lê Trung Kiên lớp java 08
Email: lekien.2803.cg@gmail.com
SĐT: 0942096947
Link bài toán: https://leetcode.com/problems/recyclable-and-low-fat-products

1. Mở đầu

Xin chào các bạn, mình viết ra bài viết này để chia sẻ phương pháp giải cũng như tư duy của mình về bài toán này của leetcode. Phương pháp của mình có thể không phải là tối ưu nhất, tuy nhiên mình sẽ phân tích, chia nhỏ bài toán ra thành các module nhỏ hơn để dễ giải quyết cũng như giúp các bạn hiểu được các yêu cầu mà bài toán đưa ra.

2. Đề bài

Cho một bảng tên Products.

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| product_id  | int     |
| low_fats    | enum    |
| recyclable  | enum    |
+-------------+---------+
product_id là khóa chính của bảng.
low_fats là ENUM với giá trị ('Y','N') trong đó 'Y' nghĩa là sản phầm này ít béo và 'N' nghĩa là sản phẩm này không ít béo.
recyclable là ENUM với giá trị ('Y', 'N') trong đó 'Y' nghĩa là sản phầm này có thể tái chế và 'N' nghĩa là sản phẩm này không thể tái chế.

Viết truy vấn SQL để tìm id của các sản phẩm vừa ít chất béo vừa có thể tái chế.
Trả về bảng kết quả theo thứ tự bất kỳ.
Định dạng kết quả truy vấn nằm trong ví dụ sau.

Ví dụ 1:

Input: 
Products table:
+-------------+----------+------------+
| product_id  | low_fats | recyclable |
+-------------+----------+------------+
| 0           | Y        | N          |
| 1           | Y        | Y          |
| 2           | N        | Y          |
| 3           | Y        | Y          |
| 4           | N        | N          |
+-------------+----------+------------+
Output: 
+-------------+
| product_id  |
+-------------+
| 1           |
| 3           |
+-------------+
Explanation: Only products 1 and 3 are both low fat and recyclable.

3. Phân tích

Đề bài này yê cầu chúng ta lấy ra id của sản phẩm đáp ứng điều kiện là ít béo (low fat) và có thể tái chế (recyclable). Mà để lọc ra được như vậy thì chúng ta sẽ sử dụng mệnh đề WHERE, với cú pháp như sau:

SELECT column1, column2, columnN 
FROM table_name
WHERE [condition]

Với điều kiện low_fats là ‘Y’ đồng thời recyclable là ‘Y’ thì chúng ta sẽ có được id sản phẩm mong muốn.

4. Code chạy luôn

Code của chúng ta như sau:

select product_id
from products
where low_fats = 'Y' and recyclable = 'Y'

5. Kết thúc

Qua bài viết này, mình đã chia sẻ cho các bạn cách mình tư duy khi giải bài tập trên leetcode. Hi vọng bài viết giúp ích cho các bạn trong cách tư duy để giải các bài tập khác. Xin cám ơn các bạn đã dành thời gian đọc và theo dõi. Peace!!!