使用 INNER JOIN 获取一张表中的所有字段?

发布于 2024-09-25 16:01:42 字数 411 浏览 10 评论 0原文

我想从一个表中获取所有字段,并对第二个表使用 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 服务器版本相对应的手册,了解在第 1 行的“DISTINCT(visit_log.blog_id) AS bid FROM stats INNER JOIN Visit_log ON stats.blog”附近使用的正确语法

有什么想法吗?

I want to get all fields from one table and use DISTINCT with the second table.

I have this:

SELECT stats.*, 
DISTINCT(visit_log.blog_id) AS bid 
FROM stats 
INNER JOIN visit_log ON stats.blog_id = visit_log.blog_id

But I get this error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT(visit_log.blog_id) AS bid FROM stats INNER JOIN visit_log ON stats.blog' at line 1

Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清醇 2024-10-02 16:01:42

您可以构造一个仅包含不同 blog_id 值的派生表,而不是针对访问日志进行联接。

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

Instead of joining against visit_log, you can construct a derived table containing only the distinct blog_id values.

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
久隐师 2024-10-02 16:01:42
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
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
地狱即天堂 2024-10-02 16:01:42

您只需从您要加入的列visit_log 中选择blog_id。所以你的查询很像:

select * 
from stats s 
where 
exists (select null from visit_log v where s.blog_id = v.blog_id)

You are only selecting blog_id from visit_log which is the column you are joining on. So your query is much like:

select * 
from stats s 
where 
exists (select null from visit_log v where s.blog_id = v.blog_id)
淡墨 2024-10-02 16:01:42
select * from visit_log v where v.blog_id in/= (select s.blog_id from stats s)
select * from visit_log v where v.blog_id in/= (select s.blog_id from stats s)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文