gpt4 book ai didi

mysql - Joomla 3.1 JDatabase 联合查询

转载 作者:搜寻专家 更新时间:2023-10-30 23:11:09 24 4
gpt4 key购买 nike

谁能展示如何与 jDatabase query 对象进行联合?

功能看起来在 Joomla 中,我只是找不到任何带有工作示例的文档...

我想要实现的查询在纯文本中通常看起来像这样:

SELECT field1,field2 FROM `#__mycomponent_table1` WHERE field1 = 0
UNION
SELECT field1,field2 FROM `#__mycomponent_table2` WHERE field1 = 0

编辑 - 我试过这个:

$db = $this->getDbo();
$query = $db->getQuery(true);
$query->union(array('SELECT field1,field2 FROM `#__mycomponent_table1` WHERE field1 = 0','SELECT field1,field2 FROM `#__mycomponent_table2` WHERE field1 = 0'));

给我:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 15' at line 1 SQL= LIMIT 0, 15 SQL='

最佳答案

不要混淆 UNION 和 JOIN

“UNION 用于将多个 SELECT 语句的结果组合成一个结果集。” UNION Syntax

所以首先您需要了解您需要的是 JOIN 还是 UNION。

如何在 Joomla 中使用 UNION

从统计上讲(检查 Joomla 代码库)UNION 不像 JOIN 那样被广泛使用。

基本上 Joomla 确实在 JDatabaseQuery 类上提供了至少两个方法。 unionunionAll。遗憾的是,我无法为您提供实际有效的查询。

CMS 中唯一使用它的组件是 com_finder 索引器,如果您想研究它的话。

如果你真的需要它们,不要害怕普通的旧查询

虽然使用 JDatabaseQuery 确实提供了一种构建查询的简单方法并使它们与多个数据库驱动程序兼容,但如果需要,您自己编写查询也没有错,尤其是当您需要时仅支持 MySQL。

JDatabase & Co 有很多很酷的功能,但绝不是完美的。他们解决了您 99% 的查询需求。在某些情况下,您需要它们未涵盖的更复杂的表达式。

最终,提供给数据库引擎的查询仍然是一个查询,无论它是如何构建的。

关于mysql - Joomla 3.1 JDatabase 联合查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20095293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com