我是一名有用的助手,可以为您翻译文本。
我有两张表用于记录外拨电话。
第一个表是people。其结构如下:
-----------------------------------
id | fname | lname | phone_number |
-----------------------------------
1 | John | Black | 132333312 |
2 | Marry | White | 172777441 |
-----------------------------------
第二个表格称为 calls 。方案如下:
----------------------------------------------------------------------
id | scr_phone | dst_phone | dst_public_id | date | notes |
----------------------------------------------------------------------
1 | 555 | 132333312 | 1 | 1.12.2013 | chit-chat |
2 | 555 | 172777441 | 2 | 1.12.2013 | serios talk |
3 | 555 | 172777441 | 2 | 2.12.2013 | conversation|
----------------------------------------------------------------------
我正在展示电话列表,不是按字母顺序排列,而是按通话频率排列。因此,无论谁从本地电话555打来,都会在最上方看到他/她经常通话的人。这是我用于此目的的MySQL查询:
SELECT p.fname, p.lname, c.notes, COUNT(c.dst_public_id) AS amount
FROM people p
JOIN calls c ON c.dst_public_id = p.id
WHERE phones != ''
GROUP BY p.id
ORDER BY amount DESC, p.lname ASC
结果是我在电话列表的顶部得到了第二个人,第一个人排在第二位(我计算每个公众人物接到的电话数量,并按此数量排序)。以下是查询结果:
--------------------------------
fname | lname | notes | amount |
--------------------------------
Marry | White | | 2 |
John | Black | | 1 |
--------------------------------
这很好。但是我希望始终显示与该人最后一次对话中所做的最后一条注释。我可能可以为每个人制作完全分离的MySQL查询,请求每个人的最后记录并从其中获取数据,类似于:
SELECT notes FROM calls WHERE dst_public_id = 2 ORDER BY date DESC LIMIT 1
我可以在我的PHP脚本中添加第一个查询结果,但是否有一种方法可以使用单个查询完成?