Php 在第二个表中缺少的匹配行上联接表

Php 在第二个表中缺少的匹配行上联接表,php,mysql,join,Php,Mysql,Join,我有两个数据库表-表1和表2。对于表1中的一些记录,我在表2中连接了几行。对于其中的大多数,我连接了3行,但是对于其中的一些,我有一个额外的行,带有一个列值,如table2.field='correct'。如果我希望结果只返回表1中的行,而表2中没有列值为table2的行,那么如何连接表1和表2。field='correct'连接到它们?如果连接行数

我有两个数据库表-表1和表2。对于表1中的一些记录,我在表2中连接了几行。对于其中的大多数,我连接了3行,但是对于其中的一些,我有一个额外的行,带有一个列值,如table2.field='correct'。如果我希望结果只返回表1中的行,而表2中没有列值为table2的行,那么如何连接表1和表2。field='correct'连接到它们?如果连接行数<4或类似值不是选项,则从第二个表中计算行数

我试过这样的方法:

SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 on t1.id=t2.id_t1 WHERE t2.field IS NULL 
但它在ofc中不起作用。因为我总是在字段列中有带值的行。对于t1中连接到t2的每一行,我在t2中都有记录行,其中t2.field='name'和t2.field='type'。我需要t1中没有连接到t2中的行的行,其中t2.field='correct'。

不在中使用

SELECT * from t1 WHERE t1.id NOT IN(SELECT id FROM t2 WHERE t2.field = 'correct')

从不存在的表1 t1中选择t1.*从表2 t2中选择t2.*其中t1.id=t2.id\u t1和t2.field='correct'

问题是t2.field从不为空,它总是有2或3行中有值。比如t2.field='name'和t2.field='type'。我需要t1中没有记录行连接到表2中t2.field='correct'的行。这没有帮助。我不需要有匹配的行。
$sql = "SELECT t1.* FROM table1 t1 CROSS JOIN table2 t2 on t1.id=t2.id_t1 WHERE t2.field IS NULL  ";