我有2个表,我目前正在使用。客户表和他们拥有的发薪日贷款表。MySQL查询来计算查询中2层深的记录数
我写的查询需要得到客户的数量与贷款余额如下:
SELECT * FROM tblcustomer
WHERE pkcustomerid IN
(SELECT fkcustomerid
FROM
(SELECT * FROM tblloan
WHERE outstandingcurrentamount!="NULL") AS T)
如果他们有一个优秀的量不是NULL或这将返回客户数据的列表0。现在我需要循环这个结果并对每个客户执行个别查询以获得所有贷款。但我只需要点数。
有没有办法以某种方式将额外的列添加到查询返回的数据,该数据是该客户的贷款数量?
表结构的相关部分:
CREATE TABLE IF NOT EXISTS `tblcustomer` (
`pkcustomerid` bigint(20) NOT NULL AUTO_INCREMENT,
`fkuserid` int(11) NOT NULL,
`fkstoreid` int(11) NOT NULL,
`fkcompanyid` int(11) NOT NULL,
`fkstaticid` varchar(255) NOT NULL,
...snip...
PRIMARY KEY (`pkcustomerid`,`fkcountryid`,`fkcityid`,`fkstateid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=821 ;
CREATE TABLE IF NOT EXISTS `tblloan` (
`pkloanid` int(11) NOT NULL AUTO_INCREMENT,
`fkuserid` int(11) NOT NULL,
`fkcustomerid` int(11) NOT NULL,
`fkstoreid` int(11) NOT NULL,
`outstandingcurrentamount` double NOT NULL
...snip...
PRIMARY KEY (`pkloanid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1567 ;
您实际上并没有将关键字'NULL'作为字符串存储在'outstandingcurrentamount'(否则将是数字?)列中,是吗? –
请为这两个表中的每一个发布“CREATE TABLE”语句。 –
没有它的数据库分配的默认NULL。但出于某种原因,执行outstandingcurrentamount> = 0将返回所有记录 – user1992522