MySQL:从一个查询中返回Mulitple ID,并在“ in”中传递该值另一个查询

发布于 2025-02-08 16:22:45 字数 285 浏览 2 评论 0原文

假设我有一个查询:

SELECT `id` FROM `tablename`

这将返回一些行中的一些ID。现在,我想使用这些ID来从另一个表中获取具有“ IN”功能的数据。

SELECT `somecol` FROM `anothertable` WHERE `parent` IN ( {IDs here} )

我可以使用2个不同的查询使用PHP执行此操作。但是我想知道仅使用一个查询单独使用MySQL来完成或可以做到这一点?

So let's say that I have a query:

SELECT `id` FROM `tablename`

This will returns some IDs in rows. Now I want to use these IDs to get data from another table with the 'IN' function.

SELECT `somecol` FROM `anothertable` WHERE `parent` IN ( {IDs here} )

I could do this with PHP using 2 different queries. But I wanted to know how or can it be done with MySQL alone, using only one query?

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

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

发布评论

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

评论(2

梦里兽 2025-02-15 16:22:45

使用存在

SELECT somecol
FROM anothertable a
WHERE EXISTS (
  SELECT * FROM tablename t WHERE t.ID = a.parent
);

Use exists:

SELECT somecol
FROM anothertable a
WHERE EXISTS (
  SELECT * FROM tablename t WHERE t.ID = a.parent
);
两人的回忆 2025-02-15 16:22:45

只需传递您的第一个查询您的第二个查询:

SELECT 
`somecol` 
FROM 
`anothertable` 
WHERE 
`parent` 
IN (SELECT `id` FROM `tablename`)

Just pass in your first query inside you second query:

SELECT 
`somecol` 
FROM 
`anothertable` 
WHERE 
`parent` 
IN (SELECT `id` FROM `tablename`)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文