我想从一个表中获取所有字段,并在第二个表中使用DISTINCT。
我有这个:
SELECT stats.*,
DISTINCT(visit_log.blog_id) AS bid
FROM stats
INNER JOIN visit_log ON stats.blog_id = visit_log.blog_id
但是我收到了这个错误:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'DISTINCT(visit_log.blog_id)附近使用正确的语法。来自第1行的AS统计数据INNER JOIN visit_log ON stats.blog'
有什么想法吗?
答案 0 :(得分:7)
您可以构建仅包含不同blog_id值的派生表,而不是加入visit_log。
select stats.*, v.blog_id
from stats
inner join ( select distinct blog_id from visit_log where stats.blog_id = visit_log.blog_id ) as v
答案 1 :(得分:1)
SELECT stats.*, dr.blog_id
FROM stats
INNER JOIN (SELECT DISTINCT(visit_log.blog_id) AS bid FROM visit_log) AS dr
ON stats.blog_id = dr.blog_id
答案 2 :(得分:0)
您只从visit_log中选择blog_id,这是您要加入的列。所以你的查询很像:
select *
from stats s
where
exists (select null from visit_log v where s.blog_id = v.blog_id)
答案 3 :(得分:0)
select * from visit_log v where v.blog_id in/= (select s.blog_id from stats s)