Php 选择表中所有不带“";X";
我正在尝试选择MySQL表中的联系人,该表在INVESTMENTS表中没有任何相关信息 我有一个类似这样的查询,但它没有正确地提取我所有的联系人 TL;DR选择所有联系人,然后删除所有有投资的联系人Php 选择表中所有不带“";X";,php,mysql,Php,Mysql,我正在尝试选择MySQL表中的联系人,该表在INVESTMENTS表中没有任何相关信息 我有一个类似这样的查询,但它没有正确地提取我所有的联系人 TL;DR选择所有联系人,然后删除所有有投资的联系人 SELECT * FROM contacts INNER JOIN investments ON investments.contactId = contacts.contactId WHERE contacts.userId = '1' AND contacts.t
SELECT
*
FROM
contacts
INNER JOIN investments ON investments.contactId = contacts.contactId
WHERE
contacts.userId = '1'
AND contacts.trash IS NULL
AND NOT EXISTS ( SELECT * FROM investments WHERE investments.company IS NULL )
GROUP BY
contacts.contactId
非常感谢您的帮助。内部联接需要联接表中的匹配项。您需要查找不匹配项的是
外部联接
,以及联接表字段上的简单where条件为null
Outer Join
s为找不到匹配项的联接表组成一个包含所有空值的“虚拟记录”。。例如,如果表1的唯一列中有a、b、c,并且外部联接表2包含a-1、b-2,则表1的前两个条目将得到匹配,而第三个值的无匹配->伪记录:a-a-1、b-b-2、c-NULL-NULL。现在,您可以通过添加where
条件来控制希望看到的结果,例如where table2 col为null
,并且只有第三个匹配项保持-c-null-null
请注意,它们是left-outer-join
s和right-outer-join
s,具体取决于您是否希望为左侧或右侧表的不匹配项创建虚拟对象。Sql允许删除单词outer
,因此它通常读取left join
和right join
一个内部联接
需要联接表中的匹配项。您需要查找不匹配项的是外部联接
,以及联接表字段上的简单where条件为null
Outer Join
s为找不到匹配项的联接表组成一个包含所有空值的“虚拟记录”。。例如,如果表1的唯一列中有a、b、c,并且外部联接表2包含a-1、b-2,则表1的前两个条目将得到匹配,而第三个值的无匹配->伪记录:a-a-1、b-b-2、c-NULL-NULL。现在,您可以通过添加where
条件来控制希望看到的结果,例如where table2 col为null
,并且只有第三个匹配项保持-c-null-null
请注意,它们是left-outer-join
s和right-outer-join
s,具体取决于您是否希望为左侧或右侧表的不匹配项创建虚拟对象。Sql允许删除单词outer
,因此它通常读取left join
和right join
,您可以使用left join
并检查公司是否为空。通过使用左连接
而不是内部连接
,您仍然可以获得联系人
,他们在投资
表中没有任何内容
SELECT
*
FROM
contacts
LEFT JOIN investments ON investments.contactId = contacts.contactId
WHERE
contacts.userId = '1'
AND contacts.trash IS NULL
AND investments.company IS NULL
GROUP BY
contacts.contactId
您可以使用左连接并检查公司是否为空。通过使用左连接
而不是内部连接
,您仍然可以获得联系人
,他们在投资
表中没有任何内容
SELECT
*
FROM
contacts
LEFT JOIN investments ON investments.contactId = contacts.contactId
WHERE
contacts.userId = '1'
AND contacts.trash IS NULL
AND investments.company IS NULL
GROUP BY
contacts.contactId
从联系人c中选择*
在i.contactId=c.contactId上左键连接i
其中c.userId='1',c.trash为NULL,i.company不为NULL
按c分组。联系人ID从联系人c中选择*
在i.contactId=c.contactId上左键连接i
其中c.userId='1',c.trash为NULL,i.company不为NULL
按c.contactId分组可以澄清一点吗?我对外部联接不太熟悉。内部连接与外部连接您可以删除内部连接
,只需使用连接
。我想我应该提一下。谢谢阿甘朱,是的,现在说得通了。令人沮丧的是,我使用的是一些简单的东西,只是一个大脑放屁,我想我没有考虑外部连接。一开始的想法是完全错误的。感谢您在这方面的帮助!谢谢我没有看到太多关于实际SQL的内容,不过解释得很好。可以澄清一下吗?我对外部联接不太熟悉。内部连接与外部连接您可以删除内部连接
,只需使用连接
。我想我应该提一下。谢谢阿甘朱,是的,现在说得通了。令人沮丧的是,我使用的是一些简单的东西,只是一个大脑放屁,我想我没有考虑外部连接。一开始的想法是完全错误的。感谢您在这方面的帮助!谢谢我没有看到太多关于实际SQL的东西,不过解释得很好。是的,令人沮丧的错误,我的想法完全不同。左路的连接显然是一个不同的世界。所以这是有道理的。和阿加朱提到的一样。谢谢你的帮助!是的,令人沮丧的错误,我的想法完全不同。左路的连接显然是一个不同的世界。所以这是有道理的。和阿加朱提到的一样。谢谢你的帮助!在这里,看看这把小提琴,我本来想添加一个答案,但他们关闭了它。谢谢你的意见!这太棒了。当然,就像我说的,我会给出答案的,但它已经关闭了,回头见!在这里,看看这把小提琴,我本来想添加一个答案,但他们关闭了它。谢谢你的意见!这太棒了。当然,就像我说的,我会给出答案的,但它已经关闭了,回头见!