Php 如何在lumen中使用不带前缀的别名连接表
这是我的活动sql:Php 如何在lumen中使用不带前缀的别名连接表,php,mysql,database,alias,lumen,Php,Mysql,Database,Alias,Lumen,这是我的活动sql: SELECT sag.goods_id, if(sa.status=3, 1, 0) AS act_status FROM d_seckill_activity_goods AS sag LEFT JOIN d_seckill_activity AS sa ON sa.id = sag.sa_id WHERE sa.id = 1 然后我需要它使用的流明分贝 所以我这样写: $prefix = env('DB_PREFIX'); DB::table('seckill_ac
SELECT sag.goods_id, if(sa.status=3, 1, 0) AS act_status
FROM d_seckill_activity_goods AS sag LEFT JOIN d_seckill_activity AS sa ON sa.id = sag.sa_id
WHERE sa.id = 1
然后我需要它使用的流明分贝
所以我这样写:
$prefix = env('DB_PREFIX');
DB::table('seckill_activity_goods as sag')
->leftJoin('seckill_activity as sa', 'sa.id', '=', 'sag.sa_id')
->select('sag.goods_id', DB::raw("if({$prefix}sa.status=3, 1, 0) AS act_status"))
->first();
幸运的是,它工作得很好,但我讨厌$prefix变量
这是使用DB的另一种方式吗?我根本不理解$prefix。在本机sql语句中,表达式中sa.status之前没有任何内容。你用它做什么?如果你只是从php代码中删除$prefix会发生什么?@Shadow,remove$prefix,SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“sa.status”(SQL:select
d\u sag
goods\u id
,if(sa.status=3,1,0)作为从d_seckill\u activity\u货物
ASd_sag
left加入d_seckill\u activity
ASd_sa
上的id
d_sag
sa_id
limit 1)我根本不理解$prefix。在本机sql语句中,表达式中sa.status之前没有任何内容。你用它做什么?如果你只是从php代码中删除$prefix会发生什么?@Shadow,remove$prefix,SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“sa.status”(SQL:selectd\u sag
goods\u id
,if(sa.status=3,1,0)从d\u seckill\u activity\u货物
ASd\u sag
左侧加入d\u seckill\u activity
ASd\u sa
上的d\u sa
id
限制1)