簡體   English   中英

如果行包含 MySql 中的某些值,則選擇事務表的最新行

[英]selecting latest row of transaction table if row contains some values in MySql

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.
// 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'

http://sqlfiddle.com/#!9/a4fbb/39/0

http://sqlfiddle.com/#!9/a4fbb/38/0

選擇leadid,customername,id,leadid,followedby from master a , transaction b where a.leadid= b.leadid and followby = 'MADHURI' order byleadid desc

此 QUERY 僅用於獲取“MADHURI”的最新值

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; 

要用於所有交易,請使用查詢

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;  

根據不同的用戶更改用戶ID..

Select Master.*, Transaction.* from Master left join Transaction on Transaction.Leadid = Master.Leadid where Followed_by = "MADHURI" order by Transaction.Leadid desc limit 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM