使用左连接时,sql join不起作用

时间:2013-04-13 09:14:34

标签: mysql sql join

我有两张桌子:

帖子

  • 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时,它返回行,但只有filename列有一个值, posts 表中的列都包含NULL。

任何帮助?

更新

很抱歉,这一定是MySQL的问题。我重新启动MySQL服务器,查询现在正常工作。对不起,谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

使用INNER JOIN

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

DEMO: