我得到这个查询:

$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条件

关于php - 左连接的第一个有多个where子句(左表),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33118383/

10-12 06:33