我正在尝试使用SQL::Abstract::More进行连接,它有一个`and,然后是一个文字值,而不是在表列上。
=>{table.table_id=table_id,table_log.date>table.date,table_log.event_id=1}
gd_audit_log我想要的结果输出
LEFT OUTER JOIN table_log ON (
table_log.date > table.date
AND table.table_id = table_log.table_id
AND table_log.event_id = 1
)此代码可以正常工作,但以下情况除外
AND table_log.event_id = 1错误是
... failed: Unknown column 'table_log.1' in 'on clause' 很明显,它生成了错误的SQL,我试图弄清楚的是如何让它生成我需要的SQL。
发布于 2013-05-02 01:12:12
来自RT Bug 84972。要插入文字值,需要使用hashref语法,而不是字符串语法:
my $result = $sqla->join(
'table',
{ operator => '=>',
condition => { '%1$s.table_id' => {-ident => '%2$s.table_id'},
'%2$s.date' => {'>' => {-ident => '%1$s.date'}},
'%2$s.event_id' => 1}},
'table_log'
);发布于 2013-05-01 06:02:42
在我看来,table_log.event_id = 1不是一个有效的join子句,但应该在where子句中。
发布于 2015-11-17 01:59:06
使用强制Luke
qw/table
=>{table.table_id=table_id,table_log.date>table.date,table_log.event_id='1'}
table_log/需要用单引号“转义”%1
https://stackoverflow.com/questions/16307208
复制相似问题