Sql 如何将其转换为使用联接?

Sql 如何将其转换为使用联接?,sql,mysql,Sql,Mysql,如何将其转换为使用联接 SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, j.time_added, j.active, j.moderated FROM jobs j, advertisers a WHERE a.advertiser_id = j.advertiser_id 你可以写一个连接,比如: SELECT * FROM jobs j JOIN advertisers a ON a

如何将其转换为使用联接

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, j.time_added, j.active, j.moderated
FROM jobs j, advertisers a
WHERE a.advertiser_id = j.advertiser_id

你可以写一个连接,比如:

SELECT  *
FROM    jobs j
JOIN    advertisers a 
ON      a.advertiser_id = j.advertiser_id

你可以写一个连接,比如:

SELECT  *
FROM    jobs j
JOIN    advertisers a 
ON      a.advertiser_id = j.advertiser_id

下面是几个示例来详细说明连接:

您的示例是一个内部连接-但是,您使用了“隐式连接表示法”,这里是显式表示方法:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    INNER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id
根据所需的结果,您可以选择使用外部联接。与内部联接的区别在于,内部联接只会在另一个表中查找具有匹配记录的记录。相反,使用外部联接,您可以指定是否希望来自作业表或广告商表的记录在另一个表中没有相应记录时显示

在此示例中,查询将查找jobs表中的所有记录,而不考虑广告商表中的匹配:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    LEFT OUTER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id
但是,此查询将查找广告商表中的所有记录,而不考虑jobs表中的匹配:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    RIGHT OUTER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id
左侧或右侧对应于表格位于“=”的哪一侧

完全外部联接将返回每个表中的所有记录,无论是否匹配:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    FULL OUTER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id

下面是几个示例来详细说明连接:

您的示例是一个内部连接-但是,您使用了“隐式连接表示法”,这里是显式表示方法:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    INNER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id
根据所需的结果,您可以选择使用外部联接。与内部联接的区别在于,内部联接只会在另一个表中查找具有匹配记录的记录。相反,使用外部联接,您可以指定是否希望来自作业表或广告商表的记录在另一个表中没有相应记录时显示

在此示例中,查询将查找jobs表中的所有记录,而不考虑广告商表中的匹配:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    LEFT OUTER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id
但是,此查询将查找广告商表中的所有记录,而不考虑jobs表中的匹配:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    RIGHT OUTER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id
左侧或右侧对应于表格位于“=”的哪一侧

完全外部联接将返回每个表中的所有记录,无论是否匹配:

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated
FROM jobs j
    FULL OUTER JOIN advertisers a
    ON j.advertiser_id = a.advertiser_id

请注意,星号(
SELECT*
)是为了答案的简洁,您仍然应该在应用程序中陈述每个选定的列(就像您在问题中所做的那样-
选择j.job\u id作为job\u name,
)。请注意星号(
SELECT*
)是为了答案的简洁,您仍然应该在应用程序中声明每个选定的列(就像您在问题中所做的那样-
选择j.job\u id作为job\u name,
)。如果不指定从哪些表中提取数据
,这是如何工作的?啊,打字!!当我应用格式时,
中的
上的
不知怎么消失了。你应该能够通过编辑答案将它们添加回。如果不指定从
中提取数据的表,这是如何工作的呢?啊,输入错误!!不知何故,当我应用格式时,来自和的
消失了。您应该能够通过编辑您的答案重新添加这些内容。