SQL内部联接不返回任何结果

时间:2014-11-30 20:34:53

标签: sql

我在WordPress SQL数据库中有以下表格....

wp_rg_lead

id     form_id    post_id        date_created         
--------------------------------------------------
3    |    5     |   786   |   2014-11-25 14:00:20
9    |    6     |   98    |   2014-11-23 22:52:40
5    |    7     |   87    |   2014-11-22 14:32:46
6    |    1     |   88    |   2014-11-22 23:13:39
78   |    33    |   689   |   2014-11-25 22:52:40
34   |    51    |   77    |   2014-11-24 14:00:20

wp_rg_lead_detail

id     lead_id    form_id    field number
--------------------------------------------------
3    |    5     |   786   |       33
9    |    6     |   98    |       4
5    |    7     |   87    |       21
6    |    1     |   88    |       5
78   |    33    |   689   |       55
34   |    51    |   77    |       1

我正试图像这样做一个INNER JOIN ......

SELECT *
FROM
    wp_rg_lead
    INNER JOIN wp_rg_lead_detail ON
            wp_rg_lead.id=wp_rg_lead_detail.lead_id
WHERE form_id = '46'
and  cast(date_created as date) >= current_date - interval '7' day;

但由于某些原因它没有返回任何结果,任何人都有任何想法?

3 个答案:

答案 0 :(得分:2)

为什么JOIN wp_client_detail

而不是wp_client_detail使用wp_rg_lead_detail

SELECT *
FROM
    wp_rg_lead
    INNER JOIN wp_rg_lead_detail ON
            wp_rg_lead.id=wp_rg_lead_detail.lead_id
WHERE form_id = '46'
and  cast(date_created as date) >= current_date - interval '7' day;

答案 1 :(得分:1)

假设这样的行确实存在,我建议您使用left join以及表别名:

SELECT *
FROM wp_rg_lead l LEFT JOIN
     wp_rg_lead_detail ld
     ON l.id = ld.lead_id AND ld.form_id = '46' 
WHERE cast(l.date_created as date) >= current_date - interval '7' day;

另一种可能性是查询返回错误。正如问题中所写,form_id含糊不清,查询不会返回任何结果。你在检查是否有适当的错误?

答案 2 :(得分:1)

在不知道您的数据的情况下,进行故障排除变得更加困难, 我建议您打破查询并对每个部分进行故障排除。

只需删除(注释掉)每个部分,从哪里开始,如果你注释掉日期过滤器会发生什么(使用 - )

--and  cast(date_created as date) >= current_date - interval '7' day;

没有数据?然后尝试做一个select,但只在wp_rg_lead上,其中form_id = 46,你还确定ID是一个字符数据类型吗?它正常工作正常,但比较时使用正确的数据类型是一种更好的做法,请使用不带条件的数字。

现在的结果是什么?

如果有结果,请尝试最后一部分,

select * from wp_rg_lead_detail where id = 46

这不能回答你的问题,但它可能会让你找到缺失的链接。