使用Where和Join在一起

时间:2014-06-12 10:24:10

标签: php mysql sql

所以我有两个表,一个存储用户名,另一个存储个人信息。我想要获得的结果是,我想获取当前活动用户名并将其与个人信息表连接以获取ID,用户名+他们的基本信息显示在表格中。我在谷歌搜索后提出了查询,但似乎我做错了什么。有人能告诉我我做错了吗?

users =包含用户名的表 userinfo表及其基本信息 $ username基本上是存储在$ SESSION

中的变量
<?php
$query = mysql_query("
SELECT users.UserID, users.Username, userinfo.FirstName, userinfo.LastName,
FROM users
WHERE users.Username = $username
INNER JOIN userinfo
ON users.UserID=userinfo.UserID");
?>

假设我在该特定代码下面有表格编码的解析数据,那么查询有什么问题? 基本上我不断得到的错误是第2行的错误#1064(当我运行没有php代码的查询时)。提前谢谢!

4 个答案:

答案 0 :(得分:1)

<?php
$query = mysql_query("
SELECT users.UserID, users.Username, userinfo.FirstName, userinfo.LastName,
FROM users
INNER JOIN userinfo
ON users.UserID=userinfo.UserID
WHERE users.Username = $username");
?>

语法为 -

SELECT col, ...
FROM <tbl_name> AS t1
INNER JOIN <join_tbl_name> AS t2
ON t1.col = t2.col
WHERE <cond>

答案 1 :(得分:1)

<?php
$query = mysql_query("
SELECT users.UserID, users.Username, userinfo.FirstName, userinfo.LastName
FROM users
INNER JOIN userinfo
ON users.UserID=userinfo.UserID
WHERE users.Username = $username
");
?>

试试这个

答案 2 :(得分:1)

请参阅以下代码。如果你打印它,你会发现错误发生的地方。

echo $query = mysql_query("SELECT users.UserID, users.Username, userinfo.FirstName, userinfo.LastName FROM users WHERE users.Username = '$username' INNER JOIN userinfo ON users.UserID=userinfo.UserID");

或使用

$sql="SELECT users.UserID, users.Username, userinfo.FirstName, userinfo.LastName FROM users WHERE users.Username = '$username' INNER JOIN userinfo ON users.UserID=userinfo.UserID";
if(!mysql_query($sql,$con))
      {
      echo "Unexpected Error <br/>";;
      die (mysql_error());
      }

其中 $ con 是mysql连接语句。

答案 3 :(得分:0)

在字段选择结尾处有一个额外的逗号。尝试删除该部分:

$query = "SELECT users.UserID, users.Username, userinfo.FirstName, userinfo.LastName
FROM users
INNER JOIN userinfo
ON users.UserID=userinfo.UserID
WHERE users.Username = $username";