gpt4 book ai didi

php - 当我真正期待一个合并行时,MySQL 和 INNER JOIN 返回了 2 行

转载 作者:行者123 更新时间:2023-11-29 13:54:04 24 4
gpt4 key购买 nike

我有以下 SQL:

    $queryString = "
SELECT
c.id,
c.object,
c.ref,
c.title,
o.value
FROM
organisations c
INNER JOIN
organisationType oT ON
oT.ref = c.ref
INNER JOIN
options o ON
oT.value = o.ref
WHERE c.ref = '585567'
ORDER BY
title
";
  • 我的组织表格包含有关组织的信息(以下是一个组织)

id, dateModified, object, ref, title

2312, 2013-04-22 17:34:55, {"__attributes":{"item_id":6868447,"external_id":..., 585567, Test organisation

  • 我的组织类型表包含一个组织的多个条目,因为一个组织可以有多种不同的类型。 (以下是分配给上述组织的2种类型)

id, dateModified, relativeTable, ref, value

5, 2013-04-22 17:34:55, organisations, 585567, 3

6, 2013-04-22 17:34:55, organisations, 585567, 2

  • 最后,我的选项表为每种类型包含一行可供引用:

id, dateModified, relativeTable, ref, value

1, 2013-04-22 16:36:59, organisations, 2, Client

2, 2013-04-22 16:36:59, organisations, 3, Partner

3, 2013-04-22 16:38:27, organisations, 4, Vendor

我希望能够返回一个组织,其类型嵌入到末尾(o.value)

所以我的结果可能是:

[1] => stdClass Object
(
[id] => 2312
[object] => ""
[ref] => "585567"
[title] => "Test organisation"
[type] => array( [0] => "Client", [1] => "Vendor" )
)

使用我当前的 SQL,我将返回一个 2 行数组,其中包含该行的所有组件的副本(除了已更改的类型之外)。不错,但并不完美。

最佳答案

你不能像 SQL 中那样直接返回子数组。不过,您可以带回所有值的串联字段。像这样的事情:-

$queryString = "
SELECT c.id,
c.object,
c.ref,
c.title,
GROUP_CONCAT(o.value) AS type
FROM organisations c
INNER JOIN organisationType oT ON oT.ref = c.ref
INNER JOIN options o ON oT.value = o.ref
WHERE c.ref = '585567'
GROUP BY c.id, c.object, c.ref, c.title
ORDER BY title
";

关于php - 当我真正期待一个合并行时,MySQL 和 INNER JOIN 返回了 2 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165873/

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