私は次の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
";
- 私の組織テーブルには、組織に関する情報が含まれています (以下は 1 つの組織です)
id、dateModified、オブジェクト、参照、タイトル
2312, 2013-04-22 17:34:55, {"__attributes":{"item_id":6868447,"external_id":..., 585567, テスト組織
- 私の組織タイプ テーブルには、1 つの組織に対して複数のエントリが含まれています。組織はさまざまな種類になる可能性があるためです。(上記の組織に所属するのは以下の2種類)
id、dateModified、relativeTable、ref、値
5, 2013-04-22 17:34:55, 組織, 585567, 3
6, 2013-04-22 17:34:55, 組織, 585567, 2
- 最後に、オプション テーブルには、参照用に使用できるタイプごとに 1 つの行が含まれています。
id、dateModified、relativeTable、ref、値
1, 2013-04-22 16:36:59, 組織, 2, クライアント
2, 2013-04-22 16:36:59, 組織, 3, パートナー
3, 2013-04-22 16:38:27, 組織, 4, ベンダー
最後にタイプが埋め込まれた 1 つの組織を返すことができるようにしたい (o.value)
したがって、私の結果は次のようになります。
[1] => stdClass Object
(
[id] => 2312
[object] => ""
[ref] => "585567"
[title] => "Test organisation"
[type] => array( [0] => "Client", [1] => "Vendor" )
)
現在の SQL では、変更された型を除いて、行のすべてのコンポーネントが複製された 2 行の配列を取得しています。大丈夫ですが、完璧ではありません。