左连接与第一个(左表)

时间:2015-10-14 06:46:35

标签: php mysql

我收到了这个查询:

$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'

的位置

我在加入和在哪里尝试了。

首先,尽管额外的地方,我得到了一切。其次,我只得到有连接的行。

任何人都可以帮助我 - 我很惊讶我甚至做了这么远看我的查询...请帮忙

1 个答案:

答案 0 :(得分:1)

这应该有效:

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条件的()