Tôi đang cố gắng hiển thị danh sách các bản ghi thành viên và tôi có một vài bảng tôi đang sử dụng để hiển thị những gì tôi cần.Truy vấn con MySQL - Chỉ tìm bản ghi đầu tiên trong LEFT JOIN
Đó là phần dễ dàng. Phần tôi cần trợ giúp là với một bảng có nhiều bản ghi cho từng thành viên: Lịch sử đăng nhập
Tôi muốn chỉ hiển thị hàng đầu tiên cho mỗi bản ghi thành viên tồn tại trong bảng Lịch sử Đăng nhập. Ngoài ra, tôi có thể muốn lật flop và hiển thị bản ghi cuối cùng trong bảng Lịch sử Đăng nhập.
đây là những gì tôi đã có cho đến nay:
SELECT m.memberid, m.membername, m.gender, mp.phone
FROM tbl_members m,
tbl_members_phones mp,
tbl_members_addresses ma
WHERE m.defaultphoneid = mp.phoneid
AND m.defaultaddressid = ma.addressid
Vì vậy mà trả về những gì đang mong đợi.
2 cột từ tbl_members_login_history
Tôi muốn thêm vào kết quả trả về là: mh. loggedtime
, mh. ipaddy
tôi biết thêm tbl_members_login_history
như một LEFT JOIN sẽ quay trở lại bản sao, vì vậy tôi nghĩ phải có một điều cần thiết Subquery đây, để trở lại chỉ là kỷ lục 1 cho rằng memberid
tồn tại trong tbl_members_login_history
.
Điều tôi lo lắng là nếu không có bản ghi trong bảng lịch sử tồn tại, tôi vẫn muốn hiển thị thông tin thành viên đó, nhưng để cột lịch sử là NULL.
Đây có phải là sự cố truy vấn phụ không? và nếu có, làm cách nào để thêm loại LIMIT đó?
Ngoài sự tò mò, điện thoại và địa chỉ có cần thiết cho thành viên không? Nếu không, tôi không nghĩ rằng truy vấn của bạn sẽ trả lại thông tin thành viên khác nếu một trong số họ thiếu cách viết. – Sam
Trong trường hợp này, có. Nhưng bạn nói đúng, thành viên sẽ không được trả lại trong kết quả mà không có một bản ghi hiện có. – coffeemonitor