0

ブックとユーザーの 2 つのテーブルがあります。books には列がidあり、users には という列がありますbook_idbook_idusers テーブルには、idfrom 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 に答える