Estoy tratando de mostrar una lista de registros de miembros, y tengo algunas tablas que estoy usando para mostrar lo que necesito.Subconsulta de MySQL - Encuentra solo el primer registro en una UNIÓN IZQUIERDA
Esa es la parte fácil. La parte con la que necesito ayuda es con una tabla que tiene muchos registros para cada registro miembro: Historial de inicio de sesión
Quiero mostrar solo la primera fila para cada registro miembro, que existe en la tabla Historial de inicio de sesión. De forma alternativa, es posible que desee flip flop y mostrar el último registro en la tabla de historial de inicio de sesión.
aquí es lo que tengo hasta ahora:
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
Así que devuelve lo que se espera.
Las 2 columnas de tbl_members_login_history
que quisiera agregar al resultado son: mh. loggedtime
, mh. ipaddy
Sé que la adición de la tbl_members_login_history
como un LEFT JOIN volvería duplicados, así que estoy pensando que debe haber una necesidad Subconsulta aquí, con el fin de devolver sólo el primero récord para ese memberid
que existe en tbl_members_login_history
.
Lo que me preocupa es que si no existe ningún registro en la tabla de historial, todavía quiero mostrar esa información de miembro, pero dejo las columnas de historial como NULL.
¿Esto sería un incidente de subconsulta? y si es así, ¿cómo se agrega ese tipo de LIMIT?
Por curiosidad, ¿se requiere un teléfono y una dirección para un miembro? De lo contrario, no creo que su consulta devuelva la información del otro miembro si falta una de ellas en la forma en que está escrita. – Sam
En este caso, sí. Pero tiene razón, el miembro no sería devuelto en el resultado sin un registro existente. – coffeemonitor