mysql - NEGATION INNER JOIN 与 WHERE

标签 mysql sql

为什么下面的sql代码会忽略

WHERE r.tt_schedules_id = '105'

SELECT DISTINCT r.load_date, u.url
FROM tt_results r
INNER JOIN url_lp u
ON u.lp_id <> r.lp_id
INNER JOIN tt_schedules s
ON s.tt_schedules_id = r.tt_schedules_id
WHERE r.tt_schedules_id = '105'
AND (DATE(NOW()) - DATE(r.load_date) <= 7)

?

基本上,它返回任何内容

tt_schedules_id

有5张表:

url_lp, tt_results (table having foreign keys in url_lp, tt_schedules and tt_tags), tt_schedules, tt_tags(not used) and tt_schedules_url_lp_hub

如果你把方案画在纸上你应该清楚。

最佳答案

我修复了它:

SELECT u.url FROM url_lp u
INNER JOIN tt_schedules_url_lp_hub hub
ON hub.lp_id = u.lp_id
INNER JOIN tt_schedules s
ON hub.tt_schedules_id = s.tt_schedules_id
WHERE s.tt_schedules_id = '105'
AND u.lp_id NOT IN 
(SELECT r.lp_id FROM tt_results r WHERE r.tt_schedules_id = '105')

干杯。

关于mysql - NEGATION INNER JOIN 与 WHERE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425928/

相关文章:

php - MySQL:获取所有文章的顺序(2个表)

mysql - GROUP BY 和 ORDER BY 不能一起工作

java - hibernate 锁定表

sql - 在不存在记录的情况下使用 SQL 插入多行

mysql - SQL 调用临时表中的列

c# - 在 MySql 中读/写 unicode 数据

sql - 通过 union all 使用多个 with 语句

php - Laravel 5.2 用户表中的额外列

mysql - 根据另一个表中的另一个特定值在 sql 表中插入 id

PHP回显乱序