有表A和表B,表A是用户表,有userid和username字段
表B是某数据表,有userid1和userid2字段,我想用一条SQL语句能查询出与userid1和userid2对应的用户名,这样可行吗?小弟技术不好忘各位大大给予解答,谢谢

解决方案 »

  1.   

    select B.userid1, a1.username, B.userid2, a2.user_name from A a1, A, a2, B
    where B.userid1 = a1.userid and B.userid2 = a2.userid;
      

  2.   

    select *
    from a a1,a a2,b b
    where a1.userid=b.userid1 and a2.userid=b.userid2
      

  3.   

    好吧,我这边这条有点复杂
    SQL语句是这样的
    SELECT a.msg_id, b.author_id, a.message_subject, a.message_text, a.message_time
    FROM `phpbb_privmsgs` a 
    left join phpbb_privmsgs_to b 
    on a.msg_id = b.msg_id and b.user_id != b.author_id 
    user_id和author_id 这两字段就是上面说的userid1和userid2,我弄了半天也没吧这语句弄好
    用户表是phpbb_users, 用户名字段是username
    麻烦各位大大了- -
      

  4.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  5.   

    嗯抱歉,下面附上,多谢各位热心解答CREATE TABLE IF NOT EXISTS `phpbb_privmsgs` (
      `msg_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
      `root_level` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `author_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `icon_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `author_ip` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '',
      `message_time` int(11) unsigned NOT NULL DEFAULT '0',
      `enable_bbcode` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `enable_smilies` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `enable_magic_url` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `enable_sig` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `message_subject` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `message_text` mediumtext COLLATE utf8_bin NOT NULL,
      `message_edit_reason` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `message_edit_user` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `message_attachment` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `bbcode_bitfield` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `bbcode_uid` varchar(8) COLLATE utf8_bin NOT NULL DEFAULT '',
      `message_edit_time` int(11) unsigned NOT NULL DEFAULT '0',
      `message_edit_count` smallint(4) unsigned NOT NULL DEFAULT '0',
      `to_address` text COLLATE utf8_bin NOT NULL,
      `bcc_address` text COLLATE utf8_bin NOT NULL,
      `message_reported` tinyint(1) unsigned NOT NULL DEFAULT '0',
      PRIMARY KEY (`msg_id`),
      KEY `author_ip` (`author_ip`),
      KEY `message_time` (`message_time`),
      KEY `author_id` (`author_id`),
      KEY `root_level` (`root_level`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=13053 ;INSERT INTO `phpbb_privmsgs` (`msg_id`, `root_level`, `author_id`, `icon_id`, `author_ip`, `message_time`, `enable_bbcode`, `enable_smilies`, `enable_magic_url`, `enable_sig`, `message_subject`, `message_text`, `message_edit_reason`, `message_edit_user`, `message_attachment`, `bbcode_bitfield`, `bbcode_uid`, `message_edit_time`, `message_edit_count`, `to_address`, `bcc_address`, `message_reported`) VALUES
    (13052, 0, 12586, 0, '', 1314666578, 1, 1, 1, 1, 'TEST', 0x544553547e7e, '', 0, 0, '0A==', 'aw9al4hx', 0, 0, 0x755f36313938, '', 0);
      

  6.   

    CREATE TABLE IF NOT EXISTS `phpbb_privmsgs_to` (
      `msg_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `user_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `author_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `pm_deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `pm_new` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `pm_unread` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `pm_replied` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `pm_ed` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `pm_forwarded` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `folder_id` int(11) NOT NULL DEFAULT '0',
      KEY `msg_id` (`msg_id`),
      KEY `author_id` (`author_id`),
      KEY `usr_flder_id` (`user_id`,`folder_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;INSERT INTO `phpbb_privmsgs_to` (`msg_id`, `user_id`, `author_id`, `pm_deleted`, `pm_new`, `pm_unread`, `pm_replied`, `pm_ed`, `pm_forwarded`, `folder_id`) VALUES
    (13052, 6198, 12586, 0, 1, 1, 0, 0, 0, 0);CREATE TABLE IF NOT EXISTS `phpbb_users` (
      `user_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
      `user_type` tinyint(2) NOT NULL DEFAULT '0',
      `group_id` mediumint(8) unsigned NOT NULL DEFAULT '3',
      `user_permissions` mediumtext COLLATE utf8_bin NOT NULL,
      `user_perm_from` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `user_ip` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_regdate` int(11) unsigned NOT NULL DEFAULT '0',
      `username` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `username_clean` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_password` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_passchg` int(11) unsigned NOT NULL DEFAULT '0',
      `user_pass_convert` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `user_email` varchar(100) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_email_hash` bigint(20) NOT NULL DEFAULT '0',
      `user_birthday` varchar(10) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_lastvisit` int(11) unsigned NOT NULL DEFAULT '0',
      `user_last` int(11) unsigned NOT NULL DEFAULT '0',
      `user_lastpost_time` int(11) unsigned NOT NULL DEFAULT '0',
      `user_lastpage` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_last_confirm_key` varchar(10) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_last_search` int(11) unsigned NOT NULL DEFAULT '0',
      `user_warnings` tinyint(4) NOT NULL DEFAULT '0',
      `user_last_warning` int(11) unsigned NOT NULL DEFAULT '0',
      `user_login_attempts` tinyint(4) NOT NULL DEFAULT '0',
      `user_inactive_reason` tinyint(2) NOT NULL DEFAULT '0',
      `user_inactive_time` int(11) unsigned NOT NULL DEFAULT '0',
      `user_posts` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `user_lang` varchar(30) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_timezone` decimal(5,2) NOT NULL DEFAULT '0.00',
      `user_dst` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `user_dateformat` varchar(30) COLLATE utf8_bin NOT NULL DEFAULT 'd M Y H:i',
      `user_style` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `user_rank` mediumint(8) unsigned NOT NULL DEFAULT '0',
      `user_colour` varchar(6) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_new_privmsg` int(4) NOT NULL DEFAULT '0',
      `user_unread_privmsg` int(4) NOT NULL DEFAULT '0',
      `user_last_privmsg` int(11) unsigned NOT NULL DEFAULT '0',
      `user_message_rules` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `user_full_folder` int(11) NOT NULL DEFAULT '-3',
      `user_emailtime` int(11) unsigned NOT NULL DEFAULT '0',
      `user_topic_show_days` smallint(4) unsigned NOT NULL DEFAULT '0',
      `user_topic_sortby_type` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 't',
      `user_topic_sortby_dir` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'd',
      `user_post_show_days` smallint(4) unsigned NOT NULL DEFAULT '0',
      `user_post_sortby_type` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 't',
      `user_post_sortby_dir` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'a',
      `user_notify` tinyint(1) unsigned NOT NULL DEFAULT '0',
      `user_notify_pm` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `user_notify_type` tinyint(4) NOT NULL DEFAULT '0',
      `user_allow_pm` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `user_allow_viewonline` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `user_allow_viewemail` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `user_allow_massemail` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `user_options` int(11) unsigned NOT NULL DEFAULT '230271',
      `user_avatar` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_avatar_type` tinyint(2) NOT NULL DEFAULT '0',
      `user_avatar_width` smallint(4) unsigned NOT NULL DEFAULT '0',
      `user_avatar_height` smallint(4) unsigned NOT NULL DEFAULT '0',
      `user_sig` mediumtext COLLATE utf8_bin NOT NULL,
      `user_sig_bbcode_uid` varchar(8) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_sig_bbcode_bitfield` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_from` varchar(100) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_icq` varchar(15) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_aim` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_yim` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_msnm` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_jabber` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_website` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_occ` text COLLATE utf8_bin NOT NULL,
      `user_interests` text COLLATE utf8_bin NOT NULL,
      `user_actkey` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_newpasswd` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_form_salt` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '',
      `user_new` tinyint(1) unsigned NOT NULL DEFAULT '1',
      `user_reminded` tinyint(4) NOT NULL DEFAULT '0',
      `user_reminded_time` int(11) unsigned NOT NULL DEFAULT '0',
      PRIMARY KEY (`user_id`),
      UNIQUE KEY `username_clean` (`username_clean`),
      KEY `user_birthday` (`user_birthday`),
      KEY `user_email_hash` (`user_email_hash`),
      KEY `user_type` (`user_type`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=40113 ;INSERT INTO `phpbb_users` (`user_id`, `user_type`, `group_id`, `user_permissions`, `user_perm_from`, `user_ip`, `user_regdate`, `username`, `username_clean`, `user_password`, `user_passchg`, `user_pass_convert`, `user_email`, `user_email_hash`, `user_birthday`, `user_lastvisit`, `user_last`, `user_lastpost_time`, `user_lastpage`, `user_last_confirm_key`, `user_last_search`, `user_warnings`, `user_last_warning`, `user_login_attempts`, `user_inactive_reason`, `user_inactive_time`, `user_posts`, `user_lang`, `user_timezone`, `user_dst`, `user_dateformat`, `user_style`, `user_rank`, `user_colour`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_message_rules`, `user_full_folder`, `user_emailtime`, `user_topic_show_days`, `user_topic_sortby_type`, `user_topic_sortby_dir`, `user_post_show_days`, `user_post_sortby_type`, `user_post_sortby_dir`, `user_notify`, `user_notify_pm`, `user_notify_type`, `user_allow_pm`, `user_allow_viewonline`, `user_allow_viewemail`, `user_allow_massemail`, `user_options`, `user_avatar`, `user_avatar_type`, `user_avatar_width`, `user_avatar_height`, `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, `user_website`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `user_form_salt`, `user_new`, `user_reminded`, `user_reminded_time`) VALUES
    (6198, 3, 1, '', 0, '', 1300154400, 'user1', 'user1', '06a8647723d4d285aefdb02ed285220b', 0, 1, '', 0, '0000-00-00', 1314586599, 1314608594, 0, '', '', 0, 0, 0, 0, 0, 0, 719, 'zh', 0.00, 0, 'Y-M-j H:i', 1, 0, '', 0, 1, 0, 0, -3, 0, 0, 't', 'd', 0, 't', 'a', 0, 1, 0, 1, 1, 1, 1, 230207, 'dz_custom_avatars/6198.jpg', 3, 120, 108, 0x3c696d67207372633d22687474703a2f2f6935332e74696e797069632e636f6d2f317a66306774302e6a70672220626f726465723d223022206f6e636c69636b3d227a6f6f6d28746869732922206f6e6c6f61643d22617474616368696d6728746869732c20276c6f616427292220616c743d2222202f3e, '3nlxmqpa', '', '', '', '', '', '', '', '', '', '', '', '', '', 1, 0, 0),
    (12586, 0, 11, '', 0, '', 1302372224, 'user2', 'user2', '', 0, 1, '', 0, '1984-01-19', 1314564578, 1314666032, 0, '', '', 0, 0, 0, 0, 0, 0, 30, 'zh', 0.00, 0, 'Y-M-j H:i', 1, 0, '', 0, 0, 0, 0, -3, 0, 0, 't', 'd', 0, 't', 'a', 0, 1, 0, 1, 1, 1, 1, 230207, 'http://oi56.tinypic.com/ea2ucy.jpg', 2, 120, 114, '', '2ld9llxg', '0', 'Philippines', '', '', '', '', '', '', '', '', '', '', '', 1, 0, 0);
      

  7.   

    我是希望3楼的那条SQL语句能顺便查询出user_id和author_id所对应的用户名
      

  8.   

    phpbb_privmsgs a之后加上phpbb_users b1, phpbb_users b2后,就提示Unknown column 'a.msg_id' in 'on clause'
    请问如何解决
      

  9.   

    就是在3楼的那个语句,然后在phpbb_privmsgs a之后加上一个phpbb_users c后:
    SELECT a.msg_id, b.author_id, a.message_subject, a.message_text, a.message_time 
    FROM `phpbb_privmsgs` a, phpbb_users c
    left join phpbb_privmsgs_to b 
    on a.msg_id = b.msg_id and b.user_id != b.author_id 
    这样就有提示了
      

  10.   

    表A是用户表,有userid和username字段
    表B是某数据表,有userid1和userid2字段select *
    from a a1,a a2,b b
    where a1.userid=b.userid1 and a2.userid=b.userid2
    好像和你的并不一样啊。
      

  11.   

    一开始只是想知道大致的方法而已,之后想吧这个方法运用到我的语句里没想到我弄了半天都没弄出来- -
    求正确的SQL语句- -