Chào mọi người tình hình là em đang mắc câu truy vấn mò cả ngày không ra nôm na là kết hợp Inner join bảng 1 và bảng 2 sau đó check điều kiện, nay mạn phép lên hỏi các bậc tiền bối ạ về keyword ạ.
CSDL của em gồm 2 bảng: post và post_meta
Bảng post:
ID
Bảng post_meta:
post_id
post_key
post_value
Bây giờ em muốn Inner join bảng 1(post) sang bảng 2(post_meta)
và lấy ra row với điều kiện tại Row với giá trị post_key = A
nếu giá trị tại post_value LIKE %B%
thì sẽ trả về kết quả.
Vấn đề là có rất nhiều post_id có cùng ID ở bên bảng 1 vì thế khi em query câu dưới đây thì kết quả trả về sẽ không chính xác:
SELECT post.ID
FROM post
INNER JOIN post_meta ON post.ID = post_meta.post_id
WHERE post_meta.post_key = 'A' AND post_value LIKE '%B%'
Không chính xác bởi vì có rất nhiều row với post_key và post_value khác nhau cùng thuộc 1 ID
Vậy các tiền bối cho em hỏi có cách nào inner join và kiểm tra tại bảng thứ 2 rằng, nếu tồn tại 1 row mà trong row đó có post_key = A
và post_value Like B
thì mới trả về. (Ràng buộc 2 điều kiện phải trên cùng 1 row)
EM xin cảm ơn mọi người rất nhiều ạ. Mong mọi người giúp đỡ.