0

投稿、用語、関係の 3 つのテーブルがあります。

投稿テーブル:

ID     title      
1      abc
2      cdf

条件表:

term_id  slug
1        jeans
2        shirts

関係表:

object_id    taxonomy_id
1             1
2             1

「ジーンズ」に関連するタイトルをリストするために使用した MySQL クエリ

SELECT posts.title 
FROM posts, terms, relationships
WHERE (SELECT terms.term_id FROM terms WHERE terms.slug LIKE '%jeans%')
AND (SELECT relationships.object_id FROM relationships WHERE terms.term_id = relationships.taxonomy_id)
AND (posts.ID = relationships.object_id)

エラー #1242 - サブクエリが複数の行を返します。どうすればこれを修正できますか?

4

3 に答える 3

0

これを試して:

SELECT posts.title
FROM posts INNER JOIN relationships ON (posts.ID = relationships.object_id)
           INNER JOIN terms ON (terms.term_id = relationships.taxonomy_id)
WHERE terms.slug LIKE '%jeans%';

私はあなたのテーブルを持っていないので、テストすることはできませんが、これはうまくいくはずだと思います。

于 2012-05-17T00:25:04.327 に答える
0

次のようなものを試してください。

SELECT p.title 
  FROM posts p
  JOIN relationships r
    ON r.object_id = p.ID
  JOIN terms t
    ON t.term_id = r.taxonomy_id 
 WHERE t.slug LIKE '%jeans%'
于 2012-05-17T00:26:08.490 に答える
0
SELECT posts.title
FROM posts 
    INNER JOIN relationships ON (posts.ID = relationships.object_id)
    INNER JOIN terms ON (terms.term_id = relationships.taxonomy_id)
WHERE 
    (terms.slug LIKE '%jeans%')
AND 
    (terms.term_id = relationships.taxonomy_id)
AND 
    (posts.ID = relationships.object_id)
于 2012-05-17T00:27:09.643 に答える