MYSQL 从两个表中选择并减少查询
Posted
技术标签:
【中文标题】MYSQL 从两个表中选择并减少查询【英文标题】:MYSQL SELECT FROM two tables and cutting down queries 【发布时间】:2014-02-21 07:34:52 【问题描述】:我有两张桌子wp_term_relationships
和wp_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 从两个表中选择并减少查询的主要内容,如果未能解决你的问题,请参考以下文章