我正在尝试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'的条目。我已经尝试删除表并创建一个新的但它仍然执行相同的输出。我希望有人可以帮助我。感谢
答案 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”