【发布时间】:2019-10-10 23:34:57
【问题描述】:
我有 3 个表,用户、新闻、news_viewed。我正在尝试加入这 3 个表格并查找每个用户尚未查看的新闻列表。
- 表
users- 用户名
- 用户名
- 状态
- 表
news- 新闻
- 标题
- post_time
- 表
news_viewed- nvid
- 用户名
- 新闻
希望从users 中查找尚未阅读新闻的列表(在news_viewed 中找到)
我尝试了许多不同的连接,包括左连接和内部和外部,但无法获得我需要的结果。
$_30daysago = strtotime('-30 days');
SELECT * FROM
(
SELECT users.username, news_id
FROM users inner join news_viewed ON
users.username = news_viewed.username and users.status='active'
UNION
SELECT news_viewed.username, post_time
FROM news_viewed inner join news ON
news_viewed.newsid = news.newsid and news.post_time>'$_30daysago'
) as JoinedTable
我需要包含 users.username、news.newsid 和 news.title 的所需结果。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
另外,你不需要从php中传入日期变量——mysql有完美的日期时间函数供你使用。