簡體   English   中英

從3個有條件的聯接表中選擇?

[英]Select from 3 joined tables with condition?

我有四個表:

請求:

id----salesid--custid---serial-----active
=======================================
1-------2-------1--------13221-------1
2-------1-------2--------15422-------1
3-------1-------3--------11233-------1
4-------2-------1--------11342-------1

salesid是emp表中的外鍵,我們不需要employee表中的任何東西,除了emp id外,因此顯示其詳細信息並不重要

CUSTID是客戶ID的外鍵

serial是該請求的序列號

活動是刪除標志

請求條件:

id-----requestid-----requestcondition 
======================================
1--------1-------------pending
2--------1-------------installation pending 
3--------2-------------pending  
4--------1-------------completed

顧客:

id------name
============
1-------aaaa
2-------bbbb
3-------cccc

我想選擇為特定請求添加的最后一個條件和客戶名稱,並根據salesid列請求序列號

嘗試

SELECT Id=scope_identity();

要么

LAST_INSERT_ID();

通過這個,你可以得到最后插入的標識和獲得最后一個條件后,在實施joins.Read一下這個鏈接

    select r.id, rc.id, c.name, r.serial, rc.requestcondition
    from request r
    inner join customer c on c.id=r.custid
    inner join requestcondition rc on rc.requestid=r.id
    inner join (
       select max(id) as rcid
        from requestcondition
        group by requestid
    ) latest on latest.rcid=rc.id

這將給出所有請求的最新狀態。 如果只需要一個請求的最新狀態,則需要在末尾添加一個where子句。

暫無
暫無

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

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