如果我们想使用Phalcon中的查询构建器将多个表连接到单个查询中。它要求为所有需要连接的表创建模型。
这是缺点还是优势?
$m = Firstmodel::query()
->columns("col1, col2")
->where("col3 = '2'")
->join("model2", "col1 = col5", 'a')
->join("model3", "col6 = col7", 'b')
->orderBy("col1")
->execute();
使用一个连接查询,它可以完美运行。但是如上所述有2个连接查询会出现以下错误:
Scanning error before '] JOIN [] JOIN [...'
when parsing: SELECT col1, col2 FROM [Firstmodel]
JOIN [model2] AS [a] ON col1 = col5
JOIN [] JOIN [] JOIN [] JOIN [] WHERE col3 = '2' ORDER BY col1 (180)
是否有另一种方法可以在不创建模型的情况下连接表格?
答案 0 :(得分:2)
您必须显示col1 col5等来自哪个型号。尝试通过此示例重写您的查询:
$builder->from('Robots')
->join('RobotsParts', 'Robots.id = RobotsParts.robots_id', 'p')
->join('Parts', 'Parts.id = RobotsParts.parts_id', 't');