MySQL UNION SELECT 3表错误

时间:2015-07-12 04:08:47

标签: php mysql union

我正在尝试UNION选择3个表:admin_table,moderator_table,user_table。

三者共享相同的列:uid,用户名,密码。

这是他们的内容。

#navbar {
    width:75%;
    margin:0px auto;
    text-align:right;
    position:relative;
    top:218px;

}

#navbar li {
    list-style:none;
    display:inline;
    position:relative;
}

#navbar a {
    background-color:#862D59;
    font-size:18px;
    width:60px;
    margin:0px;
    padding:10px 15px;
    color:#FFF;
    text-decoration:none;
    text-align:center;
}
#navbar a:hover {
    background-color:#602040;
    border-bottom:solid 4px #969;
}

#navbar li ul {
    display:none;
}

#navbar li:hover ul {
    position:absolute;
    display:block;
}

问题在于我执行此查询时:

admin_table
uid   |   username   |   password
---------------------------------------
1001  |   admin01    |   lakK4wAsln@ZGK


moderator_table
uid   |   username   |   password
---------------------------------------
2001  |   mod01      |   jb#0NAL837AjLj


user_table
uid   |   username   |   password
---------------------------------------
3001  |    user01    |   sdndLaKn$RfGK:

结果是

SELECT * FROM admin_table UNION SELECT * FROM moderator_table UNION SELECT * FROM user_table WHERE username = "admin01";

正如你可以看到mod01正在出现而我的查询是显示用户名为'admin01'的条目。我已经尝试删除表并创建一个新的但它仍然执行相同的输出。我希望有人可以帮助我。感谢

1 个答案:

答案 0 :(得分:0)

WHERE子句仅适用于最后一个UNION。

这个怎么样:
SELECT * FROM admin_table WHERE username =“admin01”
UNION
SELECT * FROM moderator_table WHERE username =“admin01”
UNION
SELECT * FROM user_table WHERE username =“admin01”