Php 如果行在MySql中包含一些值,则选择事务表的最新行

Php 如果行在MySql中包含一些值,则选择事务表的最新行,php,mysql,sql-server,join,Php,Mysql,Sql Server,Join,从主事务a、事务b中选择leadid、customername、id、leadid、FollowerBy,其中a.leadid=b.leadid和FollowerBy='MADHURI'订单按leadid描述执行此查询仅用于获取'MADHURI'的最新值 These are my two tables, `Leadid` is Primary Key. Table1 - (Master) Leadid Customer Name 101 Ramesh Kum

从主事务a、事务b中选择leadid、customername、id、leadid、FollowerBy,其中a.leadid=b.leadid和FollowerBy='MADHURI'订单按leadid描述执行此查询仅用于获取'MADHURI'的最新值

These are my two tables, `Leadid` is Primary Key. Table1 - (Master) Leadid Customer Name 101 Ramesh Kumar 102 Rajan Kumar 103 Rahul Kumar Table2 - (Transaction) id Leadid Followed_by 1 101 SAKSHI 2 101 MADHURI 3 101 SAKSHI 4 102 SAKSHI 5 102 MADHURI 6 103 SAKSHI 7 103 SAKSHI Question : I need all record from `Table1` and `Table2` , in which MAHURI has followed latest on Leadid. (As Below) `102 Rajan Kumar 5 102 MADHURI` In Case of SAKSHI it Should be: 101 Ramesh Kumar 3 101 SAKSHI 103 Rahul Kumar 7 103 SAKSHI if same lead id is followed by others, previous transcation should not be included... i e Leadid 101 was followed by madhuri also but then after followed by SAKSHI. so it should not be displayed when putting query for MADHURI.
Select Master.*, Transaction.* from Master left join Transaction on Transaction.Leadid = Master.Leadid where Followed_by = "MADHURI" order by Transaction.Leadid desc limit 1
要用于所有转换,请使用查询

SELECT a.*,b.* FROM `Master` AS a INNER JOIN `Transaction` AS b ON a.Leadid = b.Leadid WHERE Followed_by = "MADHURI" ORDER BY b.id DESC LIMIT 1; 
根据不同的用户更改用户ID

SELECT a.*,b.* FROM `Master` AS a INNER JOIN `Transaction` AS b ON a.Leadid = b.Leadid WHERE b.id = 'userid' ORDER BY b.id DESC LIMIT 1;  

我可以对SAKSHI使用相同的查询来获得结果:101 Ramesh Kumar 3 101 SAKSHI 103 Rahul Kumar 7 103SAKSHI@ranjan库马尔-是的,你可以!!我可以使用同样的查询来获得结果吗:101 Ramesh Kumar 3 101 SAKSHI 103 Rahul Kumar 7 103 SAKSHI根据编辑您的问题我可以使用同样的查询来获得结果吗:101 Ramesh Kumar 3 101 SAKSHI 103 Rahul Kumar 7 103 SAKSHI谢谢!但在SAKSHI的例子中,它只显示了一条记录103,在这里它应该显示101,因为101后面紧跟着SAKSHI。请检查并帮助:你应该正确地提出问题。第一部分是正确的。但是第二部分很差。谢谢你!但在SAKSHI的例子中,它只显示了一条记录103,在这里它应该显示101,因为101后面紧跟着SAKSHI。请检查并帮助:结果为真..因为最新的一个后面跟'sakshi'是'rahulkumar'sakshi已经跟了两条线索最新的:101和103在您的第二个表中存在数据复制..这与关系数据库的概念相反..在开始项目之前,请确保您的表已规范化。。
// SAME CODE WHILE SELECT FOR SAKSHI


SELECT s.*,t.* FROM master s
INNER JOIN Transaction t
ON(t.leadid = s.leadid)
WHERE NOT EXISTS(SELECT 1 FROM Transaction tt
             WHERE t.leadid = tt.leadid
               AND t.id < tt.id)
 AND t.followed_by = 'SAKSHI'



// SAME CODE WHILE SELECT FOR MADHURI


SELECT s.*,t.* FROM master s
INNER JOIN Transaction t
ON(t.leadid = s.leadid)
WHERE NOT EXISTS(SELECT 1 FROM Transaction tt
             WHERE t.leadid = tt.leadid
               AND t.id < tt.id)
 AND t.followed_by = 'MADHURI'