我最終做得有點不同,但得到了理想的結果,從某種意義上說,我可以進一步解析數據,因爲我需要它。解決方案:
private function getrejects(){
// Here I just got joined data with duplicate emails and object_ids
global $DBC;
$qRecipients = pg_query($DBC,'
SELECT
users.email, objects.object_id, rejects.path, rejects.report_id
FROM
rejects
LEFT JOIN
objects
ON
rejects.object_id = objects.object_id
LEFT JOIN
users
ON
objects.user_id = users.user_id
WHERE
date_sent IS NULL
');
$result = array();
while($row = pg_fetch_assoc($qRecipients)){
array_push($result,$row);
}
return $result;
}
,在這裏我把它與電子郵件的陣列和OBJECT_ID隨後的鑰匙。
private function formatemaildata($in){
foreach ($in as $row){
if (!isset($result[$row['email']][$row['object_id']])){
$result[$row['email']][$row['object_id']]=array();
}
array_push($result[$row['email']][$row['object_id']], $row['path']);
}
return $result;
}
結果而傾倒是沿着
'[email protected]' =>
array(3) {
[8573] =>
array(4) {
[0] =>
string(30) "http://lorempixel.com/400/200/"
[1] =>
string(30) "http://lorempixel.com/400/200/"
[2] =>
string(30) "http://lorempixel.com/400/200/"
[3] =>
string(30) "http://lorempixel.com/400/200/"
}
[8574] =>
array(4) {
[0] =>
string(30) "http://lorempixel.com/400/200/"
[1] =>
string(30) "http://lorempixel.com/400/200/"
[2] =>
string(30) "http://lorempixel.com/400/200/"
[3] =>
string(30) "http://lorempixel.com/400/200/"
}
線爲什麼不使用JOIN? –
我將如何實施加入案件?獲得我需要的結果?它可能會很晚,我可能會覺得很慢:/ 用於獲取電子郵件我使用連接 – Limiter
其實,也許我可以使用連接來生成一堆用電子郵件加入的行,然後用PHP解析它? – Limiter