MYSQL 从两个表中选择并减少查询

Posted

技术标签:

【中文标题】MYSQL 从两个表中选择并减少查询【英文标题】:MYSQL SELECT FROM two tables and cutting down queries 【发布时间】:2014-02-21 07:34:52 【问题描述】:

我有两张桌子wp_term_relationshipswp_term_taxonomy

当我执行以下SELECT * FROM wp_term_taxonomy WHERE parent = '17' 时,我得到下面的图像

那我就SELECT * FROM wp_term_relationships WHERE term_taxonomy_id = '28'

哪些输出

然后object_id 被使用SELECT * FROM wp_term_relationships WHERE object_id = '88',这显示了这个项目的terms

然后我想做的是在term_taxonomy_id 旁边显示下表中的taxonomy 名称

抱歉,这是一个冗长的问题,但我希望有人能够提供帮助并可能简化它,以便从我最初查询 parent=17 的位置开始,我只能显示 DISTINCT taxonomy其中taxonomy 等于product_brand

【问题讨论】:

您想只显示分类法等于product_brand的DISTINCT分类法。这不会只返回一条记录,其中taxonomy 的值是product_brand 的值 【参考方案1】:

您可以将上一个查询替换为:

SELECT wptr.*, wptt.taxonomy
FROM wp_term_relationships wptr 
INNER JOIN wp_term_taxonomy wptt ON wptr.term_taxonomy_id = wptt.term_taxonomy_id
WHERE object_id = '88'

它使用 INNER JOIN 将 wp_term_taxonomy 中的分类名称作为 term_taxonomy_id ID。

正如 Anticom 所说,你应该看看 SQL 中的 JOIN,它们会解决你的问题并且易于使用。

【讨论】:

【参考方案2】:

您的问题的答案是JOINS。您也可以使用subselects,但加入表格通常更快。

应该有类似于 MSSQL 或 PostgreSQL 等其他 DBMS 的开发人员资源。

【讨论】:

以上是关于MYSQL 从两个表中选择并减少查询的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询加入,比较两个表并返回第一个表中的所有记录

如何使用mysql从图像表中获取总数?

MySql单查询,两表同名

Mysql查询 - 返回两个日期范围相交的日期

MySQL - 在一个查询中从不同表中选择多行

从两个表中选择更新 Linq 查询?