我有这个数据库架构,如附图所示,我需要以某种方式加入tblDdiNumbers
tblTransactions
只显示来自tblTransactions
的最新记录,而不是重复的ddi_numbers。
基本上我要做的是根据事务表中的信息显示已分配和未分配的ddi_numbers。
所以如果ddi_number X在事务表中有一个条目,我可以确定它已被使用并且不再是免费的。
或者您认为在tblDdiNumber
表中保留我想要的信息的外键可能更好吗?
答案 0 :(得分:0)
此查询将为您提供可能的“最新行”。 (不知道钥匙,我不会打赌。编辑你的问题以包括钥匙。)
select ddi_id, max(trans_date) latest_date
from tblTransactions
group by ddi_id
如果该查询返回多行,那么您的表结构可能不支持您尝试执行的操作。
无论如何,您可以像这样加入该查询
select t1.*, t3.ddi_number
from tblTransactions t1
inner join (select ddi_id, max(trans_date) latest_date
from tblTransactions
group by ddi_id) t2
on t1. ddi_id = t2.ddi_id
and t1. trans_date = t2.latest_date
inner join tblDdiNumbers t3
on t3.ddi_id = t2.ddi_id