Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: aillyn en 27 de Octubre 2017, 16:58

Título: MySQL - Como obtener un registro dado una condición en registros repetidos bajo
Publicado por: aillyn en 27 de Octubre 2017, 16:58
Hola, necesito ayuda:
Tengo un listado de usuarios (ID, display_name, contract_start_date, contract_end_date, current) donde el user con ID 6 correspondiente a Adriana Smith sale 2 veces pero con diferentes fechas de contratos, para lograr esto hice un left join de una tabla a otra con relacion 1 a muchos (1:m) como indica este query:

SELECT bo_users.ID, bo_users.display_name, COALESCE (bo_users_contracts.contract_start_date,'-') AS contract_start_date, COALESCE (bo_users_contracts.contract_end_date, '-') AS contract_end_date, COALESCE (bo_users_contracts.current,'-') AS current

FROM bo_users

LEFT JOIN bo_users_contracts ON bo_users.ID = bo_users_contracts.bo_users_id

LEFT JOIN bo_usermeta ON bo_users.ID = bo_usermeta.user_id

WHERE (bo_usermeta.meta_key = 'role' AND bo_usermeta.meta_value = 'member')


pero lo que quiero obtener como resultado final es q me devuelva todos los usuarios, pero de aquellos q estan repetidos solo me devuelva el registro donde la columna "current" = 1, y al final solo me quedaria como resultado los 3 usuarios Alejandro, Rhonda y Adriana con el registro donde su "current" = 1

Como le hago?
Gracias
Título: Re:MySQL - Como obtener un registro dado una condición en registros repetidos bajo
Publicado por: Ogramar en 07 de Febrero 2018, 21:31
Buenas, quizás sea tarde pero por dar una idea a quien se le plantee una situación así, pienso que una opción es crear una vista usando el gestor de base de datos que se esté empleando, por ejemplo phpMyAdmin. Una vista viene siendo una tabla creada a partir de una consulta. Para ello en phpMyAdmin se debe ejecutar la consulta y una vez realizada pulsar en el enlace "CREATE VIEW". Al darle a create view debes poner un nombre de vista (view name) y los nombres de las columnas con que desees nombrar las columnas del resultado de la consulta. Una vez tengas la vista creada, puedes hacer consultas sobre ella. En este caso sería un SELECT * FROM nombre_vista WHERE 'current'=1

Salu2