Mysql 仅当其联接记录存在于其他表中时获取记录
我有两个关于组和类别的表,我想返回组和类别,不包括那些没有任何类别的组。这里是我编写的SQL:Mysql 仅当其联接记录存在于其他表中时获取记录,mysql,sql,join,Mysql,Sql,Join,我有两个关于组和类别的表,我想返回组和类别,不包括那些没有任何类别的组。这里是我编写的SQL: SELECT cat_group.subject as group_name , spcat . * FROM special_event_groups AS cat_group LEFT JOIN special_event_categories AS spcat ON cat_group.id = spcat.group_id AND ca
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
LEFT JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
AND cat_group.partner_id = spcat.partner_id;
它返回给我的记录组的空值没有任何类别。我需要使用子查询吗?您也可以使用
外部左联接
,左联接
,联接
,这取决于数据库的版本
试试这个:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
// LEFT JOIN, OUTER LEFT JOIN, JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
WHERE cat_group.partner_id IS NULL;
让我知道它是否有效您也可以使用
外部左连接
,左连接
,连接
,这取决于数据库的版本
试试这个:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
// LEFT JOIN, OUTER LEFT JOIN, JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
WHERE cat_group.partner_id IS NULL;
让我知道它是否有效您也可以使用
外部左连接
,左连接
,连接
,这取决于数据库的版本
试试这个:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
// LEFT JOIN, OUTER LEFT JOIN, JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
WHERE cat_group.partner_id IS NULL;
让我知道它是否有效您也可以使用
外部左连接
,左连接
,连接
,这取决于数据库的版本
试试这个:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
// LEFT JOIN, OUTER LEFT JOIN, JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
WHERE cat_group.partner_id IS NULL;
让我知道它是否有效您需要做的是将
左连接
更改为连接
:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
AND cat_group.partner_id = spcat.partner_id;
如果不满足连接条件,
左连接
显示特殊事件组
中的行,并在特殊事件组
中的选定列中附加NULL
值<另一方面,当不满足JOIN
条件时,code>JOIN从不返回行。您可以阅读@MrMoose comment以了解更多信息。您需要做的是将左连接
更改为连接
:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
AND cat_group.partner_id = spcat.partner_id;
如果不满足连接条件,
左连接
显示特殊事件组
中的行,并在特殊事件组
中的选定列中附加NULL
值<另一方面,当不满足JOIN
条件时,code>JOIN从不返回行。您可以阅读@MrMoose comment以了解更多信息。您需要做的是将左连接
更改为连接
:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
AND cat_group.partner_id = spcat.partner_id;
如果不满足连接条件,
左连接
显示特殊事件组
中的行,并在特殊事件组
中的选定列中附加NULL
值<另一方面,当不满足JOIN
条件时,code>JOIN从不返回行。您可以阅读@MrMoose comment以了解更多信息。您需要做的是将左连接
更改为连接
:
SELECT
cat_group.subject as group_name , spcat . *
FROM
special_event_groups AS cat_group
JOIN
special_event_categories AS spcat ON cat_group.id = spcat.group_id
AND cat_group.partner_id = spcat.partner_id;
如果不满足连接条件,
左连接
显示特殊事件组
中的行,并在特殊事件组
中的选定列中附加NULL
值<另一方面,当不满足JOIN
条件时,code>JOIN从不返回行。你可以阅读@MrMoose评论以了解更多信息。将左连接更改为连接
?是的,将左连接更改为连接或内部连接(虽然它们是相同的)@piotrekkr很好,可以帮助配偶感谢一大堆!!你们中的任何一个人可以添加这个作为答案,这样我就可以标记它了吗?如果你是JOIN
语法的新手,我发现类似于JOIN的东西对获得基本理解非常有帮助。它们都能很好地解释维恩图的局限性/缺点,并提供有趣的回答和替代方案。这些都是学习SQL连接的相当不错的资源。你也可以使用外部左连接,左连接,连接,这取决于数据库的版本更改左连接
到连接
?是的,将左连接更改为连接或内部连接(尽管它们是相同的)@piotrekkr非常好,这对配偶非常有帮助!!你们中的任何一个人可以添加这个作为答案,这样我就可以标记它了吗?如果你是JOIN
语法的新手,我发现类似于JOIN的东西对获得基本理解非常有帮助。它们都能很好地解释维恩图的局限性/缺点,并提供有趣的回答和替代方案。这些都是学习SQL连接的相当不错的资源。你也可以使用外部左连接,左连接,连接,这取决于数据库的版本更改左连接
到连接
?是的,将左连接更改为连接或内部连接(尽管它们是相同的)@piotrekkr非常好,这对配偶非常有帮助!!你们中的任何一个人可以添加这个作为答案,这样我就可以标记它了吗?如果你是JOIN
语法的新手,我发现类似于JOIN的东西对获得基本理解非常有帮助。它们都能很好地解释维恩图的局限性/缺点,并提供有趣的回答和替代方案。这些都是学习SQL连接的相当不错的资源。你也可以使用外部左连接,左连接,连接,这取决于数据库的版本更改左连接
到连接
?是的,将左连接更改为连接或内部连接(尽管它们是相同的)@piotrekkr非常好,这对配偶非常有帮助!!你们中的任何一个人可以添加这个作为答案,这样我就可以标记它了吗?如果你是JOIN
语法的新手,我发现类似于JOIN的东西对获得基本理解非常有帮助。它们都能很好地解释维恩图的局限性/缺点,并提供有趣的回答和替代方案。这些都是学习SQL连接的相当不错的资源。你也可以使用外部左连接,左连接,连接,这取决于你数据库的版本