varios unir una subconsultas registros puro otra dentro consultas consulta buscar mysql activerecord fluent laravel eloquent

mysql - una - unir consultas laravel



¿Cómo seleccionar contar con el generador de consultas fluido de Laravel? (2)

Aquí está mi consulta usando el generador de consultas con fluidez.

$query = DB::table(''category_issue'') ->select(''issues.*'') ->where(''category_id'', ''='', 1) ->join(''issues'', ''category_issue.issue_id'', ''='', ''issues.id'') ->left_join(''issue_subscriptions'', ''issues.id'', ''='', ''issue_subscriptions.issue_id'') ->group_by(''issues.id'') ->order_by(DB::raw(''COUNT(issue_subscriptions.issue_id)''), ''desc'') ->get();

Como puede ver, estoy ordenando por un conteo de la tabla unida. Esto está funcionando bien. Sin embargo, quiero que este conteo vuelva con mis selecciones.

Aquí está la consulta de mi secuela en bruto que funciona bien.

Select issues.*, COUNT(issue_subscriptions.issue_id) AS followers FROM category_issue JOIN Issues ON category_issue.issue_id = issues.id LEFT JOIN issue_subscriptions ON issues.id = issue_subscriptions.issue_id WHERE category_issue.category_id = 1 GROUP BY issues.id ORDER BY followers DESC

¿Cómo voy a hacer esto seleccionando usando el generador de consultas fluido de Laravel? Soy consciente de que puedo usar una consulta sql sin procesar, pero me gustaría evitar eso si es posible. Cualquier ayuda sería apreciada, gracias de antemano!


Puede usar una matriz en select () para definir más columnas y puede usar DB :: raw () allí con aliasing a los seguidores. Debería verse así:

$query = DB::table(''category_issue'') ->select(array(''issues.*'', DB::raw(''COUNT(issue_subscriptions.issue_id) as followers''))) ->where(''category_id'', ''='', 1) ->join(''issues'', ''category_issue.issue_id'', ''='', ''issues.id'') ->left_join(''issue_subscriptions'', ''issues.id'', ''='', ''issue_subscriptions.issue_id'') ->group_by(''issues.id'') ->order_by(''followers'', ''desc'') ->get();


$count = DB::table(''category_issue'')->count();

le dará la cantidad de artículos.

Para obtener información más detallada, consulte la sección Fluent Query Builder en la hermosa Documentación de Laravel .