返回 MySQL 连接上的所有项目,而不仅仅是匹配的项目

发布于 2024-12-10 16:39:35 字数 379 浏览 0 评论 0原文

结帐

| item_id | user_id |

项目

| item_id |

我想要一个查询,该查询将返回所有项目,其中包含一个列,如果该列存在于特定 user_id 的结帐中,则返回 1。否则,它将返回 0。

select * 
from checkouts
right join items on items.item_id = checkouts.item_id
where checkouts.user_id = 10

问题是它仅返回其连接的项目,而不是所有项目。

有什么想法吗?

checkouts

| item_id | user_id |

items

| item_id |

I want a query that will return ALL THE ITEMS with a column that if it exists in checkouts for a particular user_id, it returns a 1. Otherwise it will return a 0.

select * 
from checkouts
right join items on items.item_id = checkouts.item_id
where checkouts.user_id = 10

The problem is that it only returns items that it joins on, not ALL the items.

Any ideas?

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

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

发布评论

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

评论(3

这样的小城市 2024-12-17 16:39:35

怎么样...

SELECT i.item_id, c.user_id, IF(c.user_id IS NULL, 0, 1) AS extra_column
FROM items i
LEFT JOIN checkouts c ON (c.item_id = i.item_id AND c.user_id = 10)

What about...

SELECT i.item_id, c.user_id, IF(c.user_id IS NULL, 0, 1) AS extra_column
FROM items i
LEFT JOIN checkouts c ON (c.item_id = i.item_id AND c.user_id = 10)
孤檠 2024-12-17 16:39:35

尝试左外连接

select * from items left outer join checkouts using (item_id)
 where checkouts.user_id is null or checkouts.user_id = 10

或者您也可以使用:

select * from items i 
  left outer join checkouts c
    on (i.item_id=c.item_id and c.user_id=10)

Try a left outer join:

select * from items left outer join checkouts using (item_id)
 where checkouts.user_id is null or checkouts.user_id = 10

Alternatively you can also use:

select * from items i 
  left outer join checkouts c
    on (i.item_id=c.item_id and c.user_id=10)
一腔孤↑勇 2024-12-17 16:39:35

尝试右外连接,例如

select * 
from checkouts c
right outer join items i on i.item_id = c.item_id
where c.user_id = 10

try a right outer join, e.g.

select * 
from checkouts c
right outer join items i on i.item_id = c.item_id
where c.user_id = 10
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文