我使用内置导入程序在bbpress中通过phpbb3论坛导入。来自bbpress的所有匿名用户都没有帐户,但被允许发布的帖子与帖子断开连接,一切都在bbpress中显示为匿名。我从post_usernames
抓取了所有phpbb_posts
并使用此查询创建了用户:
INSERT INTO wp_users (user_login)
SELECT DISTINCT post_username
FROM phpbb_posts
现在我正在尝试在3个不同的表之间进行查询。这些方面的东西:
SELECT ID FROM wp_users
INSERT INTO wp_posts(post_author)
WHERE wp_posts(post_date) = phpbb_posts(post_time)
AND phpbb_posts(post_username) = wp_users(user_login)
显然这不对......可能是语法错误,但我还需要添加一些告诉MySQL的方法user_login
必须从第一行附加到ID
。希望这是有道理的。在此先感谢您的帮助!
更新了查询:
SELECT ID FROM wp_users
SELECT post_time FROM phpbb_posts = post_date
SELECT post_username FROM phpbb_posts = user_login
希望这种语法更有意义。这些确实有效,他们选择了正确的信息。问题是我不知道如何正确编写WHERE语句,就像你说的baskint,我想我需要以某种方式使最后一个语句成为子查询。再次感谢!
答案 0 :(得分:1)
我仍然不确定每个表的PK(主键)和FK(外键)关系是什么。但是,假设wp_users
是主要表格而phpbb_posts.post_username
是wp_users.user_login
的FK ...:
SELECT `wp_users`.`ID`
FROM `wp_users` INNER JOIN
(SELECT `phpbb_posts`.`post_username` FROM `phpbb_posts`, `wp_posts` WHERE `phpbb_posts`.`post_time` = `wp_posts`.`post_date` ) AS `posts`
ON `wp_users`.`user_login` = `posts`.`post_username`;
EDIT(Dec-05-2012): 在chatting之后并且经过具体的讨论,@ sbroways必须在某些字段和其他一些修改上更改数据类型。反过来,最终的查询结果是:
SELECT wp_users.*, ws_posts.*
FROM wp_users INNER JOIN ws_posts
ON wp_users.user_login = ws_posts.user_login
答案 1 :(得分:0)
你也可以考虑子查询(SELECT * FROM b WHERE id IS IN(来自a的SELECT Id)。你可以将它级联几次,也许可以得到答案。