我有两本表和用户。图书有一列id
,用户有一列名为book_id
。 users表格中包含有关从商店购买图书的用户的信息,其中包括从图书表格中查看book_id
的列id
。
我的问题是,我一直试图这样做,但没有成功。
$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;
Table books有一些数据,但用户是空的,我什么都没有作为输出!我错过了什么?
其他尝试:
SELECT * FROM books, users WHERE books.id='$id'
返回空结果
SELECT * FROM books WHERE books.id='$id'
返回5行
答案 0 :(得分:0)
你错过了正确的JOIN
。
表格书有一些数据但是用户是空的而且我什么都没有作为输出
由于users
表不包含任何记录,因此您需要使用LEFT | RIGHT
或FULL
联接来获取结果集,具体取决于您要完成的操作。
因此,请尝试将您的查询更改为
SELECT *
FROM books b LEFT JOIN
users u ON b.id=u.book_id
WHERE ...
这是 SQLFiddle