首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SELECT获得具有IN和EQUAL命令的行?

如何使用SELECT获得具有IN和EQUAL命令的行?
EN

Stack Overflow用户
提问于 2012-08-18 19:46:35
回答 2查看 77关注 0票数 1

我有这样一个mysql表:

我试图获得nid值的列表,其中tid19,任何值都来自53, 16 or 89。根据当前表,我希望查询返回10,即=19 (第4行)和IN (53,16,89) (最后一行)。

我可以将其作为两个单独的查询获得,如下所示:

代码语言:javascript
复制
SELECT nid FROM {term_node} WHERE tid IN (53,16,89)

SELECT nid FROM {term_node} WHERE tid = 19

(term_node是截图中的表格)。我在这个应用程序中使用PHP,所以我可以结合这两个查询的结果来获得所需的结果(即10)。但是我认为有一种方法可以从一个数据库查询中获得这个结果。

我读过关于工会的文章,但老实说,我不知道如何利用它。我希望我对这个问题很清楚,并提前向你表示感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-18 19:50:47

UNION在这里帮不了你。你想要的是一个十字路口。有些数据库中有一个INTERSECT关键字,可以满足您的需要,但不幸的是没有MySQL。

您可以通过使用内部连接来获得所需的东西:

代码语言:javascript
复制
SELECT DISTINCT TN1.nid
FROM term_node AS TN1
JOIN term_node AS TN2
ON TN1.nid = TN2.nid
AND TN2.tid = 19
WHERE TN1.tid IN (53, 16, 89)

看到它在网上工作:木琴

票数 3
EN

Stack Overflow用户

发布于 2012-08-18 19:53:49

您不需要任何工会,只要在其中添加所有的tid,就可以很容易地做到这一点

代码语言:javascript
复制
SELECT nid FROM {term_node} WHERE tid IN (53,16,89, 19)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12021739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档