【问题标题】:Kohana 3.x: SQL-Query for Entities and all their MembersKohana 3.x:实体及其所有成员的 SQL 查询
【发布时间】:2010-12-02 19:43:42
【问题描述】:

我使用的是 Kohana 3.x。我有一个简单的查询来从我的 MySQL 数据库中检索对象:

$query = DB::query(Database::SELECT, "SELECT * FROM myEntity WHERE foreignKey = {$myForeignKey};");
$result = $query->execute($this->database);
$resultArray = $result->as_array();

它按预期工作。我的 $resultArray 包含与查询匹配的实体一样多的对象。 $resultArray 中的每个对象都是一个字典,包含 kex-value-pairs 形式的属性。

但是现在我想为每个“myEntity”获取他们所有的成员属性!现在我正在使用这样的 php-for-loop:

foreach ($resultArray as $entity) {
  $query = DB::query(Database::SELECT, "SELECT * FROM member WHERE foreignKey = {$entity['id']};");
  $result = $query->execute($this->database);
  $memberArray = $result->as_array();
  // do something with the memberArray..
  }

我想为每个“myEntity”对象执行另一个 SQL 查询是愚蠢的,我宁愿执行一个查询来获取所有“myEntities”以及每个“myEntities”的所有成员。但是我该怎么做呢?

【问题讨论】:

  • 您可以将两个表连接在一起以在一个查询中获得结果。

标签: sql kohana-3 member


【解决方案1】:

你可以试试这个,看看它是否产生你想要的结果?

SELECT * FROM myEntity
join member on member.foreignKey = myEntity.foreignKey
WHERE myEntity.foreignKey = {$myForeignKey};

【讨论】:

  • 您可能希望将 * 替换为您希望在结果中出现的两个表中特定列的列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2023-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
相关资源
最近更新 更多