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
-
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
-
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