这是一个discuz的数据库查询
需求是:查询某版块下的某主题下的所有message字段的内容
我是这样写的:
SELECT
b.message,
b.`subject`,
b.fid
FROM
sh_forum_post AS b
INNER JOIN sh_forum_threadclass AS a ON a.fid = b.fid
WHERE
a.`name` = '列表页图片'
实际的结果应该是两条,因为我发的,而用上面这个句子却查出了很多条,把所有的主题分类都加进去了,而我只想查出“列表页图片”这个主题,不知哪里有问题呢。
需求是:查询某版块下的某主题下的所有message字段的内容
我是这样写的:
SELECT
b.message,
b.`subject`,
b.fid
FROM
sh_forum_post AS b
INNER JOIN sh_forum_threadclass AS a ON a.fid = b.fid
WHERE
a.`name` = '列表页图片'
实际的结果应该是两条,因为我发的,而用上面这个句子却查出了很多条,把所有的主题分类都加进去了,而我只想查出“列表页图片”这个主题,不知哪里有问题呢。
SELECT
b.message,
b.`subject`,
b.fid
FROM
sh_forum_post AS b
LEFT JOIN sh_forum_threadclass AS a ON a.fid = b.fid
WHERE
a.`name` = '列表页图片'
b.message,
b.`subject`,
b.fid
FROM
sh_forum_post AS b
INNER JOIN (select * from sh_forum_threadclass
WHERE `name` = '列表页图片')
AS a ON a.fid = b.fid
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
说明我的意图,该数据库中两个表sh_forum_threadclass和sh_forum_post,这两表中的字段fid是一回事
我想通过sh_forum_threadclass表中的主题分类字段“name”为“列表页图片”这个值,查出所有的信息,一共有两条,要是查出多条就错了,这两条是我设的。
贴出你的数据库结构和数据示例以及要达到的效果这是我想要的
http://pan.baidu.com/s/1gdmYk7L 这个是数据库文件压缩包。
说明我的意图,该数据库中两个表sh_forum_threadclass和sh_forum_post,这两表中的字段fid是一回事
我想通过sh_forum_threadclass表中的主题分类字段“name”为“列表页图片”这个值,查出所有的信息,一共有两条,要是查出多条就错了,这两条是我设的。
mysql> select * from sh_forum_threadclass where name='列表页图片';
+--------+-----+-----------------+--------------+------+------------+
| typeid | fid | name | displayorder | icon | moderators |
+--------+-----+-----------------+--------------+------+------------+
| 36 | 129 | 列表页图片 | 0 | | 0 |
| 45 | 128 | 列表页图片 | 0 | | 0 |
+--------+-----+-----------------+--------------+------+------------+
2 rows in set (0.00 sec)mysql> select fid from sh_forum_post where fid regexp '12[89]';
+-----+
| fid |
+-----+
| 128 |
| 128 |
| 128 |
| 128 |
| 129 |
| 129 |
| 129 |
| 129 |
| 129 |
| 129 |
| 129 |
| 129 |
| 129 |
| 129 |
+-----+
14 rows in set (0.00 sec)