簡體   English   中英

左連接,其中第一個(左表)具有多個where子句

[英]Left join with multiple where clause for the first (left table)

我得到這個查詢:

$query = mysql_query("SELECT arbejdsopgave.*, 
                     DATE_FORMAT(dato, '%d-%m-%Y') AS tid, 
                     tilfoejelser.*, 
                     DATE_FORMAT(datotf, '%d-%m-%Y') AS tid2
                     FROM arbejdsopgave LEFT JOIN tilfoejelser 
                     ON arbejdsopgave.sub_id=tilfoejelser.sub_id2 
                     WHERE arbejdsopgave.cat_id = '$id' 
                       AND datotf IS NULL 
                       OR datotf = (select max(datotf) 
                         FROM tilfoejelser 
                         WHERE arbejdsopgave.sub_id=tilfoejelser.sub_id2)
                         ORDER BY arbejdsopgave.sub_id")
                         or die(mysql_error());

我只需要顯示表“ arbejdsopgave ”中的行,其中arbejdsopgave.cat_id = '$id' ,還需要arbejdsopgave.status = 'closed'

我嘗試了聯接和聯接。

首先,盡管有額外的地方,我還是得到了一切。 其次,我僅獲得有聯接的行。

任何人都可以幫我嗎-令我驚訝的是,我什至在查詢時都走了這么遠。

這應該工作:

SELECT arbejdsopgave.*, DATE_FORMAT(dato, '%d-%m-%Y') AS tid, tilfoejelser.*, DATE_FORMAT(datotf, '%d-%m-%Y') AS tid2 
FROM arbejdsopgave 
LEFT JOIN tilfoejelser ON arbejdsopgave.sub_id=tilfoejelser.sub_id2
WHERE arbejdsopgave.cat_id = '$id' 
AND arbejdsopgave.status = 'closed'
AND (datotf IS NULL 
OR datotf = (
    select max(datotf) FROM tilfoejelser 
    WHERE arbejdsopgave.sub_id=tilfoejelser.sub_id2) )
ORDER BY arbejdsopgave.sub_id

我想您會忘記()的datotf OR條件

暫無
暫無

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

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