2015-05-22 2 views
0

У меня есть 2 транзакции таблиц и trans_comments, когда я выполняю внутреннее соединение, он возвращает самую первую запись, что я хочу сделать, это отобразить адрес и статус в таблице транзакций и последний комментарий вошел и дату из таблицы trans_commentsMySQL - выбор последней записи во второй таблице при объединении двух таблиц

вот что я получил

SELECT t.address, t.status, c.time, c.comment 
FROM transactions t 
INNER JOIN trans_comments c ON c.transactionId = t.transactionId 
WHERE STATUS LIKE '%Listing%' 
GROUP BY t.address DESC 

что я упускаю?

Вот расположение столов:

`transactions` (
    `transactionId` int(11) NOT NULL AUTO_INCREMENT, 
    `address` varchar(45) NOT NULL, 
    `listing_agent` varchar(65) DEFAULT NULL, 
    `status` varchar(45) NOT NULL, 
    `notes` varchar(100) DEFAULT NULL, 
    `file_type` varchar(25) NOT NULL, 
    `system` varchar(25) DEFAULT NULL, 
    PRIMARY KEY (`transactionId`)  
)ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=41 ; 

`trans_comments` (
    `commId` int(11) NOT NULL AUTO_INCREMENT, 
    `transactionId` int(11) NOT NULL, 
    `comment` blob NOT NULL, 
    `commentBy` varchar(45) NOT NULL, 
    `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`commId`), 
    KEY `transactionId` (`transactionId`) 
)ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ; 

Благодаря

+0

вы быть уничтожена mysqls 'отзывчивость'. 'group by' не может использоваться для того, для чего вы пытаетесь его использовать, - значения, которые он выбирает для полей, не входящих в предложение' group by', или не используемых в агрегированной функции, являются неопределенными –

ответ

-1
SELECT t.address, t.status, c.time, c.comment 
FROM transactions t 
INNER JOIN 
    (SELECT c1.* 
    FROM trans_comments c1 
    LEFT JOIN trans_comments c2 
    ON c1.transactionId = c2.transactionId 
    AND c1.`time` < c2.`time` 
    WHERE c2.commId IS NULL 
) c 
ON c.transactionId = t.transactionId 
WHERE STATUS LIKE '%Listing%' 
+0

отличная работа Alex! Эта работа отлично –

Смежные вопросы