我在数据库中有3个表:wp_connections
,wp_connections_terms
和wp_connections_relationships
。第一个包含公司,id
和organization
列,而organization
包含公司名称。第二个表的“ term_id”列为PK,分支名称为name
列。
第三张表是一个中间表,其中包含FK:term_taxonomy_id -> wp_connections_terms__term_id
和entry_id -> wp_connections__id
。
我想做的是从数据库中获取所有wp_connections
行,并将wp_connections_terms
和term_id
的数据name
联接到每个相关行。
这是我的查询:
SELECT id,
organization,
options,
term_id,
name
FROM wp_connections
JOIN wp_connections_term_relationships
ON wp_connections.id = wp_connections_term_relationships.entry_id
JOIN wp_connections_terms
ON wp_connections_terms.term_id =
wp_connections_term_relationships.term_taxonomy_id
ORDER BY organization ASC
此查询为我提供了数据,但某些行重复了。 wp_connections
表中有62行,但此查询得到74条结果。我在做什么错了?
这是指向sqlfiddle的链接-http://sqlfiddle.com/#!9/a71d33/2,其中包含架构和一些数据。由于输入字符数的限制,我已经删掉了该用例不需要的列。
答案 0 :(得分:1)
可能是某个表中的某些行与其他表中的更多行相关,因此查询返回重复的行..
如果您需要不同的结果,请将其添加到查询中
SELECT DISTINCT
id,
organization,
options,
term_id,
name
FROM wp_connections
JOIN wp_connections_term_relationships
ON wp_connections.id = wp_connections_term_relationships.entry_id
JOIN wp_connections_terms
ON wp_connections_terms.term_id =
wp_connections_term_relationships.term_taxonomy_id
ORDER BY organization ASC