在第二个查询中使用第一个查询的结果

时间:2013-12-31 10:42:59

标签: php mysql

我的数据库中有两个表

blog (id, title, body and userid)

user (id, username,firstname, lastname and about)

我想在blog表格中搜索某些关键字的内容,并获得titlebodyuserid的结果。我想在第二个表选择查询中使用userid。所以我可以显示博客作者的name(username)

基本上我想在第二个result(userid)

中使用第一个查询的query(userid to username)
modified after suggestion **help me**

我尝试了建议的答案

我认为INNER Join可以解决我的问题但仍然没有解决

现在我的代码是

include_once "connect_to_mysql.php";
$sql = mysql_query("SELECT blog.*, user.username FROM blog INNER JOIN user ON
user.id = blog.userid WHERE (title LIKE '%$search%' OR body LIKE '%$search%')");
// try with or without WHERE condition ...and also try with blog.title
while($row = mysql_fetch_array($sql)){
echo $row['username'];
echo $row['title'];
echo $row['user.username']; //try also
}

但是我没有告诉我这些代码有什么问题

主键和外键有任何问题

5 个答案:

答案 0 :(得分:1)

Whey你不尝试内部加入

select blog.*, user.username, user.firstname,user.lastname,user.about from blog
inner join user on user.id = blog.userid

你可以添加额外的where where条件,如果没有,这样你就不需要2个查询,只有查询结果集会给你一切。

答案 1 :(得分:0)

尝试这个:

$mysqli = mysqli_connect("localhost", "my_user_name", "my_password", "database");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$query ="SELECT b.*,u.username from blog as b INNER JOIN user as u ON b.userid= u.id ";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
         echo $row['username']." ".$row['title'];
    }

    /* free result set */
    $result->free();
}

答案 2 :(得分:0)

您可以使用联接

来实现此目的
select blog.title,blog.id,user.username,user.firstname,user.lastname,user.about from blog join user on user.id = blog.userid

答案 3 :(得分:0)

您应该通过加入这两个表来获得结果。始终使用连接而不是使用子查询/内部查询。下面是获取欲望输出的查询:

select blog.*,user.username,user.firstname,user.lastname from blog JOIN user on blog.userid=user.id;

Table       index
blog        id primary key
blog        userid
user        id primary key

为了获得更好的性能,请始终拥有连接列的索引。

答案 4 :(得分:-1)

您可以使用内部联接或简单联接,也可以在博客表中使用用户ID的外键作为参考