1

次の SQL クエリを使用して、テーブルpostsusers、およびcommentsからコンテンツを抽出しています

データベースでクエリを実行すると、結果の「ID」列の値 14 が正しく返されます。

ただし、PHP の mysqli を使用すると、1が返され、場合によっては2が返されます。誰でもクエリの問題を確認できますか? 私はそれを何時間も見つめてきましたが、正しい ID 値を取得するためだけに別のクエリを実行したくありません。

SELECT * FROM posts 
LEFT OUTER JOIN comments ON posts.ID = comments.comment_post_id AND comments.comment_approved = 1
LEFT OUTER JOIN users ON users.ID = posts.post_author WHERE posts.ID = '14' AND posts.post_type = 'post' AND posts.post_status = 'publish'
ORDER BY comments.comment_ID DESC 

PHP コード:

 while ($thisResult = $result->fetch_array(MYSQLI_ASSOC)) {
    echo $thisResult['ID']; // returns 1
    echo $thisResult['post_title']; // returns the correct post title
 }
4

1 に答える 1

2

クエリ内の複数のテーブルにID列があります。の代わりにフィールド エイリアスを使用*selectます。例えば、

SELECT posts.id as post_id, ..... FROM posts ....

または、次を使用して正しいIDを取得できます(IDがテーブル$thisResult[0]の最初の列であると仮定)posts

于 2013-04-13T21:13:53.057 に答える