2017-09-20 2 views
-1

こんにちは私は次のようなクエリを持っていますが、グループは動作していません。mysqlグループとの結合

あなたは、選択組合の周りに括弧を入れてそれにエイリアスを与え、そこから選択する必要があり
SELECT messages.thread_id,messages.subject,messages.message_id,messages.status,messages.attachment,login.name, DATE_FORMAT(messages.date, '%D-%b-%Y') as date from messages inner join login on messages.receiver = login.id where (messages.sender = '" . mysql_real_escape_string(trim($_SESSION['login_id'])) . "' and messages.status = 'trash') 
UNION SELECT messages.thread_id,messages.subject,messages.message_id,messages.status,messages.attachment,login.name, DATE_FORMAT(messages.date, '%D-%b-%Y') as date from messages inner join login on messages.sender = login.id where (messages.receiver = '" . mysql_real_escape_string(trim($_SESSION['login_id'])) . "' and messages.status = 'trash') GROUP BY messages.thread_id 
+0

最初にmysqli not mysqlを使用すると、より良い結果が得られます –

答えて

0

SELECT A.* FROM 
(messages.thread_id,messages.subject,messages.message_id,messages.status,mess 
ages.attachment,login.name, DATE_FORMAT(messages.date, '%D-%b-%Y') as 
date from messages inner join login on messages.receiver = login.id 
where (messages.sender = '" . 
mysql_real_escape_string(trim($_SESSION['login_id'])) . "' and 
messages.status = 'trash') 
UNION SELECT 
messages.thread_id,messages.subject,messages.message_id,messages.status,messa 
ges.attachment,login.name, DATE_FORMAT(messages.date, '%D-%b-%Y') as 
date from messages inner join login on messages.sender = login.id where 
(messages.receiver = '" . 
mysql_real_escape_string(trim($_SESSION['login_id'])) . "' and 
messages.status = 'trash')) AS A 
GROUP BY A.thread_id 
0

それはグループの両方からの組み合わされた結果をできるように、外側のクエリにクエリをラップクエリ。

SELECT z.* 
FROM 
(
    SELECT messages.thread_id, messages.subject, messages.message_id, messages.status, 
    messages.attachment, login.name, DATE_FORMAT(messages.date, '%D-%b-%Y') as date 
    FROM messages 
    INNER JOIN login ON messages.receiver = login.id 
    WHERE messages.sender = '" . mysql_real_escape_string(trim($_SESSION['login_id'])) . "' 
    AND messages.status = 'trash' 
    UNION 
    SELECT messages.thread_id, messages.subject, messages.message_id, messages.status, 
    messages.attachment, login.name, DATE_FORMAT(messages.date, '%D-%b-%Y') as date 
    FROM messages 
    INNER JOIN login ON messages.sender = login.id 
    WHERE messages.receiver = '" . mysql_real_escape_string(trim($_SESSION['login_id'])) . "' 
    AND messages.status = 'trash' 
) AS z 
GROUP BY z.thread_id 
関連する問題