English 中文(简体)
如何在询问结果中划出一个相关(在职)表的领域?
原标题:How to sort fields of a related (joined) table in query results?

可能比与Dotrine本身的关系更多。

I have two tables, specified in schema file roughly like this:

Project:
  columns:
    name: { type: string(255), notnull: true }

Task:
  columns:
    project_id: { type: integer, notnull: true }
    name: { type: string(255), notnull: true }
  relations:
    Project: { onDelete: CASCADE, local: project_id, foreign: id, foreignAlias: Tasks }

我愿收到一份按名称列出的任务清单的项目。

$projectWithTasks = Doctrine_Core::getTable("Project")->createQuery("p")
    ->leftJoin("p.Tasks t")
    ->where("p.id = ?", $projectId)
    ->orderBy("t.name ASC")
    ->fetchOne();

显然,它赢得了一些工作。 我在寻求解决办法时相当一段时间,但也许我使用错误的话,因为我找不到任何有用的信息。 我非常感谢任何帮助。

最佳回答

您可以把任务拖欠令定义为“YML”档案中的项目关系,例如:

Project:
  columns:
    name: { type: string(255), notnull: true }
  relations:
    Task:
      local: id
      foreign: project_id
      orderBy: name

Task:
  columns:
    project_id: { type: integer, notnull: true }
    name: { type: string(255), notnull: true }

这样,在项目执行时,你的任务就自动按名称分类。

问题回答

您请您在问询中使用“t”的选任人,然后将其定义为:

$projectWithTasks = Doctrine_Query::create()
     ->select( p.*, t.* )
     ->from( Project p )
     ->leftJoin( p.Tasks t )
     ->where( p.id = ? , $projectId)
     ->orderBy( t.name ASC )
     ->fetchOne();

Alternatively you can use your syntax, just replace the "t" in orderBy by "p.Tasks":

$projectWithTasks = Doctrine_Core::getTable("Project")->createQuery("p")
    ->leftJoin("p.Tasks t")
    ->where("p.id = ?", $projectId)
    ->orderBy("p.Tasks.name ASC")
    ->fetchOne();




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签