2

タグ

tag_id   post_id   value
------------------------
1        1         some
2        1         good
3        1         title
4        2         some
5        2         good
6        3         some
7        4         good
8        4         title

投稿

post_id  title
-------------------
1        some good title
2        some good
3        some
4        good title

同じpost_idに値を含むpost_id=1と2を取得するにはどうすればsomeよいgoodですか?

結果は

RESULT
title
----------
some good title
some good

good titlesomeタグのpost_id=4に値 がないため、dosentshow。some要件をbeouseに表示しませんgood

4

1 に答える 1

3

LIKE複数回試してください:

SELECT * FROM post
WHERE title LIKE '%some%'
AND title LIKE '%good%'

このSQLFiddleを参照してください

次のように両方のテーブルを結合することもできます。

SELECT post.post_id, title FROM Post
RIGHT JOIN Tags
ON post.post_id = tags.post_id
WHERE Tags.value IN ('some','good')
GROUP BY post.Post_ID
HAVING COUNT(*)>1;

このSQLFiddleを参照してください

注:句を使用しない場合HAVING、単一の値が存在するレコードも返されます

このSQLFiddleを参照してください

同様のテーブル構造を持つ同様の要件を参照してください。

于 2012-11-10T06:40:04.323 に答える