sql - 从2个表中选择数据

时间:2016-06-15 15:27:33

标签: php sql

我有2个表 - chats_topices和chats_replies

我想从最接近当前日期的chats_replies中选择所有chats_topices字段+字段createDate(timestamp)。

chats_replies包含连接表

之间的字段CHATID
$sql = "SELECT * 
        FROM `chats_topics` AS topics, `chats_replies` AS replies
        WHERE (".$search.") AND
                (topics.id = replies.chatID) AND
                (XXXX)
        ORDER BY topics.createDate DESC";   

2 个答案:

答案 0 :(得分:1)

在实时代码中使用SELECT *是不好的做法,我会选择这样的东西;

SELECT topics.Field1, topics.Field2, MAX(replies.createDate) createDate
FROM `chats_topics` AS topics
LEFT JOIN `chats_replies` AS replies
ON topics.id = replies.chatID
WHERE (".$search.")
    AND (topics.id = replies.chatID)
    AND (XXXX)
GROUP BY topics.Field1, topics.Field2
ORDER BY topics.createDate DESC

在您选择的字段中添加所需的字段,然后将其添加到组中。

答案 1 :(得分:1)

Rich Benner为这个特殊问题提供了一个很好的连接声明。我想跟进并附上我在发表连接语句时发现有用的图像,希望它在将来可能会有所帮助。我不记得我在哪里得到这张照片(虽然你可以在底部看到版权)。

enter image description here