10/10/2018, 09:46

Hỏi chút về lệnh query MySQL trong PHP

Có 2 table: hocsinhthongtin
Filed của mỗi table là
hocsinh: catid, tag
thongtin: item, catid
=======================
Hiện tại thì tui thực hiện ý đồ như sau
Khi biết giá trị thuộc field tag (lấy từ $_REQUEST['tag'] chẳng hạn),
- query lần 1(table hocsinh) để lấy catid tương ứng
- query lần 2(vào table thongtin) để lấy danh sách các item có giá trị catid (vừa lây đc trong lần query 1)

===================
Vậy, giờ tui mún chỉ 1 lệnh query mà có đc kết quả giống như cách trên ko (nghe nói dùng left join... j` j` đó nhưng tìm hỉu mãi chưa lần ra :-?)
thuankkk viết 11:52 ngày 10/10/2018
SELECT * FROM `thongtin` WHERE `catid` IN (SELECT `catid` FROM `hocsinh` WHERE `tag`='$tag');
Đang xài cái này.
mitdacqn viết 11:58 ngày 10/10/2018
Code:
SELECT t.item, t.catid FROM thongtin t, hocsinh h WHERE h.tag='$tag' AND h.catid=t.catid
phuongthom viết 12:00 ngày 10/10/2018
@thuankkk: chẳng qua cũng là cách của tui nhưng vít chung trên 1 dòng

@mitdacqn: ok, đúng rồi :x

[=========> Bổ sung bài viết <=========]

Nhân tiện hỏi thêm chút

tại sao thỉng thoảng query lại phải thêm dấu `, trường hợp nào thì cần dấu `
mitdacqn viết 11:46 ngày 10/10/2018
Dấu ` dùng trong trường hợp tên table hoặc tên field trùng với từ khóa, tên hàm của mysql.
thienthan36 viết 11:58 ngày 10/10/2018
su dung thu lenh nay xem sao co dc khong.
select * from hocsinh left join thongtin on thongtin.catid = hocsinh.catid where hocsinh.tag = '$tag'
rootkit viết 11:57 ngày 10/10/2018
dùng left join hay right join sẽ có tốc độ nhanh hơn so với kết bảng thông thường
Bài liên quan
0