1

我有两张桌子:

帖子

  • 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 回答