簡體   English   中英

SQL 查詢未選擇兩個表?

[英]SQL query not selecting two tables?

我是 SQL 的新手,我想弄清楚並喜歡它。 我嘗試 select 兩個表,但我無法弄清楚為什么 output 不如預期。

UITV_CODE 是數字,現在我看到與 VAKGROEP 完全相同的 output,UITV_CODE 的 output 應該不同。 我懷疑選擇兩個表時出了點問題。 有人有什么想法嗎?

SELECT
    UITVOERDERS.UITV_CODE,
    UITVOERDERS.VAKGROEP,
    UITV_CONTRACTS.CONTRACTNR,
    UITV_CONTRACTS.DAT_STOP
FROM 
    UITVOERDERS,
    UITV_CONTRACTS
WHERE VAKGROEP LIKE 'S%' AND DAT_STOP IS null

ORDER BY UITV_CODE

使用 30 個 UITVOERDERS 和 20 個 UITV_CONTRACTS 可以組合所有內容,30 x 20 = 600 條記錄,並僅返回具有 WHERE 條件的記錄。 因此,如果有 25 個帶有 UITVOERDERS.VAKGROEP 的以“S”開頭的 UITV_CONTRACTS 和 4 個帶有 DAT_STOP IS null 的 UITV_CONTRACTS,則顯示 25 x 4 = 100 條記錄。

對於尚未停止的運行合同,我希望:

SELECT
    U.UITV_CODE,
    U.VAKGROEP,
    C.CONTRACTNR,
    C.DAT_STOP
FROM 
    UITVOERDERS U,
    UITV_CONTRACTS C
WHERE C.UITV_CODE = U.UITV_CODE
    AND U.VAKGROEP LIKE 'S%' AND C.DAT_STOP IS null
ORDER BY U.UITV_CODE

可以寫成

SELECT
    U.UITV_CODE,
    U.VAKGROEP,
    C.CONTRACTNR,
    C.DAT_STOP
FROM 
    UITVOERDERS U
LEFT JOIN UITV_CONTRACTS C ON C.UITV_CODE = U.UITV_CODE
WHERE U.VAKGROEP LIKE 'S%' AND C.DAT_STOP IS null
ORDER BY U.UITV_CODE

如果合同鏈接到 uitvoerder。

暫無
暫無

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

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