0

我有两个表书和用户。书籍有一个列id,用户有一个名为book_id. users 表由有关从商店购买书籍的用户的信息填充,包括book_ididfrom books 表推荐的列。

我的问题是,我一直在尝试这样做,但没有成功。

$query = mysql_query("SELECT * FROM books, users WHERE books.id='$id' OR users.id='$id' ");
while($row = mysql_fetch_array($query)){
    $info .= $row[0] . " " . $row[1] . "<br/>";
}
echo $info; 

表格书籍有一些数据,但用户是空的,我没有得到任何输出!!!我错过了什么??

其他尝试:

SELECT * FROM books, users WHERE books.id='$id'返回空结果

SELECT * FROM books WHERE books.id='$id'返回 5 行

4

1 回答 1

0

你错过了正确的JOIN.

表格书籍有一些数据,但用户是空的,我没有得到任何输出

由于users表不包含您需要使用LEFT | RIGHTFULL加入来获取结果集的记录,具体取决于您要完成的工作。

因此尝试将您的查询更改为

SELECT * 
  FROM books b LEFT JOIN
       users u ON b.id=u.book_id
 WHERE ... 

这是SQLFiddle

于 2013-03-20T02:29:52.043 回答