내 쿼리 아래,의 MySQL 및 PHP : 지난 3 개 활성 스레드
SELECT ID, Approved, RecipientID, RecipientScreenname, RecipientEmail
FROM
(
SELECT
root_strings.str_id as ID,
root_strings.str_approved as Approved,
root_strings.mem_id as RecipientID,
root_members_cfm.mem_screenname as RecipientScreenname,
root_members_cfm.mem_firstname as RecipientFirstname,
root_members_cfm.mem_email as RecipientEmail
FROM root_strings
LEFT JOIN root_members_cfm
ON root_members_cfm.mem_id = root_strings.mem_id
WHERE root_strings.parent_id = '1'
AND root_strings.mem_id IS NOT NULL
UNION ALL
SELECT
root_strings.str_id as ID,
root_strings.str_approved as Approved,
root_strings.mem_id as RecipientID,
root_users.usr_screenname as RecipientScreenname,
root_users.usr_firstname as RecipientFirstname,
root_users.usr_email as RecipientEmail
FROM root_strings
LEFT JOIN root_users
ON root_users.usr_id = root_strings.usr_id
WHERE root_strings.parent_id = '1'
AND root_strings.usr_id IS NOT NULL
) SQ
ORDER BY ID DESC
LIMIT 0,3
그것은이 같은 결과를 반환, 내 블로그의 commnets에서 지난 3 개 활성 스레드를 얻을 것이다
ID Approved RecipientID RecipientScreenname RecipientEmail
14 1 3 x [email protected]
13 n/a NULL y [email protected]
13 n/a NULL y [email protected]
다음은 각자에게 이메일을 보내 드리겠습니다.
foreach($items_thread as $item_thread)
{
$sentmail = mail($item_thread['RecipientEmail'],$email_subject,$email_content,$email_headers);
}
하지만 당신은 내가 이메일의 두 배 y
를 보낼 것 같이 가깝게 볼 때 논리가 올바르지 않습니다!
y
은 하나의 이메일을 받아야합니다. SQL 쿼리 또는 PHP 코드를 수정해야합니까?
아니면이'대신 별개의 recipientemail'을 선택하고, array_unique를 사용하는 지금은 이것에 대한 해결책을 가지고 있습니다. –