0

我已经使用内置导入器通过 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 一样,我想我需要以某种方式将最后一个语句作为子查询。再次感谢!

4

2 回答 2

1

我仍然不确定每个表的 PK(主键)和 FK(外键)关系是什么。但是,假设这wp_users是主表并且phpbb_posts.post_usernamewp_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`;

编辑(2012 年 12 月 5 日):在聊天和浏览特定内容后,@sbroways 不得不更改某些字段的数据类型和一些其他修改。反过来,最终的查询结果是:

SELECT wp_users.*, ws_posts.*
FROM wp_users INNER JOIN ws_posts
ON wp_users.user_login = ws_posts.user_login
于 2012-12-05T04:51:14.703 回答
0

你是对的。您的语法令人困惑且不正确。试图了解您要完成的工作。在第二个查询中,为什么要同时选择和插入?也许我遗漏了一些东西,但是您能否说明您要从哪些表格中提取的内容以及您希望如何以简单的英语查看结果?

你也可以考虑子查询(SELECT * FROM b WHERE id IS IN(SELECT Id from a)。你可以级联几次,也许会得到你的答案。

于 2012-12-05T03:48:48.927 回答