我有一个SELECT语句,它为我提供了符合条件的相关ID和公司名称列表。以下是声明:
$result = mysqli_query($con,"SELECT a.OWNER_ID,b.ID, b.TITLE AS companyname FROM b_crm_act a INNER JOIN b_crm_company b ON a.OWNER_ID = b.ID");
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['ID'] . "</td>";
echo "<td>" . $row['companyname'] . "</td>";
echo "</tr>";
}
echo "</table>";
列出所有ID和公司名称。我真正需要的是b_crm_company中不在b_crm_act中的ID列表。我在想我使用NOT IN功能,但我已经尝试了这个并且它没有列出任何内容。
我们将不胜感激。
答案 0 :(得分:1)
您可以在此
上使用LEFT JOIN
SELECT a.ID,
a.TITLE AS companyname
FROM b_crm_company a
LEFT JOIN b_crm_act b
ON a.ID = b.OWNER_ID // <== specify how the tables are linked
WHERE b.OWNER_ID IS NULL // <== a value of NULL when it doesn't exists
不确定您的列名称,但这就是它的样子。
答案 1 :(得分:0)
我不知道这有多高效但您尝试过使用NOT IN子查询吗?
SELECT ID,title FROM b_crm_company WHERE ID NOT IN( SELECT ID FROM b_crm_company INNER JOIN b_crm_act ON b_crm_act.OWNER_ID = b_crm_company.ID )