hoe vorige record te selecteren met LINKER samengevoegde tabellen in MySQL?

Ik heb moeite om het volgEINDEe te laten werken:

# prev
SELECT klha.buyerID < PARAMETER_1

    FROM agents AS v

    LEFT JOIN seller_authorized AS klhs 
        ON klhs.agent= v.agentID 
        AND klhs.iln = v.seller
        AND v.`status` = 'auth'

    LEFT JOIN cust_list AS klha 
        ON klha.buyerID  = klhs.userID
        AND klha.accountNo = klhs.accountNo
        WHERE v.iln = PARAMETER_2
        AND klhs.acccountNo IS NOT NULL

    ORDER BY klha.buyerID 
    LIMIT 1 
;

EINDE

De linker joins werken terwijl ik ze in een andere procedure gebruik om ALLE relevante records te selecteren. Het probleem zit in mijn poging om het vorige record te selecteren.

Ik geef een BuyerID door en moet de ID van het vorige record ophalen.

Question:
Can anyone point me to the correct syntax?

EDIT:
If I run this in MySQL, I'm getting "0" as resultset

Bedankt!

SOLUTION:
Got it to work like this:

# prev
SELECT klha.buyerID

    FROM agents AS v

    LEFT JOIN seller_authorized AS klhs 
        ON klhs.agent= v.agentID 
        AND klhs.iln = v.seller
        AND v.`status` = 'auth'

    LEFT JOIN cust_list AS klha 
        ON klha.buyerID  = klhs.userID
        AND klha.accountNo = klhs.accountNo
        WHERE v.iln = PARAMETER_2
        AND klhs.acccountNo IS NOT NULL
        AND klha.buyerID < PARAMETER_1

    ORDER BY klha.buyerID 
    LIMIT 1 
;

Makkelijker dan gedacht :-) Bedankt @Henrique Ordine

0
Welkom. Ik ben blij dat ik kon helpen.
toegevoegd de auteur Henrique Ordine, de bron

1 antwoord

Als ik goed begrijp wat u nodig hebt, zou het toevoegen van deze voorwaarde aan uw where-component het volgende moeten doen:

and klha.buyerID = (select max(buyerID) from agents where buyerID < PARAMETER_1)

Zoals dit:

SELECT klha.buyerID 

    FROM agents AS v

    LEFT JOIN seller_authorized AS klhs 
        ON klhs.agent= v.agentID 
        AND klhs.iln = v.seller
        AND v.`status` = 'auth'

    LEFT JOIN cust_list AS klha 
        ON klha.buyerID  = klhs.userID
        AND klha.accountNo = klhs.accountNo
    WHERE v.iln = PARAMETER_2
      AND klhs.acccountNo IS NOT NULL
      and klha.buyerID = (select max(buyerID) from agents 
                            where buyerID < PARAMETER_1)

    ORDER BY klha.buyerID 
    LIMIT 1 
1
toegevoegd
ah oké. Ik kan niet alleen <> in mijn initiële selectie kan ik?
toegevoegd de auteur frequent, de bron
Geen probleem :-). Laat me proberen of je oplossingen werken.
toegevoegd de auteur frequent, de bron
Werkte met een beetje tweak. Zie hierboven. BEDANKT!
toegevoegd de auteur frequent, de bron
Het spijt me, ik begrijp uw vraag niet.
toegevoegd de auteur Henrique Ordine, de bron