我有一个MySQL JOIN查询,其中有两个表连接以获得输出
select distinct (a.error_type),a.links_id, a.crawl_cycle , b.* from $table a inner join crawler_error_type b on a.error_type = b.error_type where a.projects_id = '$pid' and b.error_priority_page_level='High'
现在我想检查第三个表中是否存在字段error_type
的值。如果它存在,那么它不应该给我结果行。
答案 0 :(得分:0)
您需要在INNER JOIN
上再添加一个third_table
作为:
SELECT DISTINCT a.error_type, a.links_id, a.crawl_cycle , b.*
FROM $table a
INNER JOIN crawler_error_type b
ON a.error_type = b.error_type
INNER JOIN third_table c
ON a.error_type = c.error_type
WHERE a.projects_id = '$pid' AND
b.error_priority_page_level='High'.
答案 1 :(得分:0)
添加以下内容:
LEFT OUTER JOIN third_table c ON c.error_type = a.error_type
和
WHERE c.error_type is null
LEFT OUTER JOIN将显示加入third_table的表中的所有记录。由于您不希望记录具有来自third_table的匹配错误类型,请使用WHERE c.error_type is null
答案 2 :(得分:0)
如果我理解正确,你应该能够内部加入第三个表。如果连接表中有记录,则内连接将显示记录。如果我误会你能详细说明吗。 THX
select distinct (a.error_type),a.links_id, a.crawl_cycle , b.*
from $table a
inner join crawler_error_type b on a.error_type = b.error_type
inner join some_table_3 c on c.error_type = a.error_type
where a.projects_id = '$pid' and b.error_priority_page_level='High'