1

私は2つのテーブルを持っています:

投稿

  • ID
  • 題名
  • コンテンツ

添付ファイル

  • ID
  • post_id
  • ファイル名

ファイル名に「.txt」が含まれるファイルが添付されている投稿を検索したいと考えています。

私が知っているすべてのタイプのJOINを使用しましたが、まだ機能しません。

SELECT posts.*, filename FROM posts LEFT JOIN attachments ON posts.id = attachments.post_id WHERE filename LIKE '%.txt%'

上記の SQL は行を返しません。RIGHT JOIN を使用すると、行が返されますが、ファイル名の列だけに値があり、postsテーブルの列にはすべて NULL が含まれています。

何か助けはありますか?

アップデート

申し訳ありませんが、それは MySQL の問題だったに違いありません。MySQL サーバーを再起動したところ、クエリが機能するようになりました。申し訳ありませんが、助けてくれてありがとう。

4

1 に答える 1

2

使用するINNER JOIN

SELECT 
   posts.*, 
   filename 
FROM posts 
INNER JOIN attachments 
  ON posts.id = attachments.post_id 
WHERE attachments.filename LIKE '%.txt%'

デモ:

于 2013-04-13T09:24:05.303 に答える