2017-01-07 2 views
0

私は2つのテーブル:questionstrackingを持っています。INNER JOINは機能していません

questionsは、idurlの列を保持します。

trackingは、q_iduser_idの列を保持します。

は、私は何をしたいq_id = iduser_id$_SESSION["id"]($のID)に等しい場合を除いて、すべての行のランダムなURLを選択することです。ここで

は私のクエリです:

$results = $db->query("SELECT url FROM questions 
     INNER JOIN tracking ON 
     questions.id != tracking.q_id 
     WHERE tracking.user_id = '$id' 
     LIMIT 1 ORDER BY RAND()"); 

$rows = $results->fetch_array(); 

私がやっているクエリは、私が間違って何をやっている、何らかの理由で動作しませんか?

+1

は何を意味し、 "動作しませんか"?あまりにも多くの結果を持っていますが、結果はありません、エラー? – Jeff

+0

@Jeffこれは何も結果を生成していません – user2896120

+0

あなたはこれを試してみてください "あなたの質問からLEFT JOINの質問を追跡することができますか?questions.id = tracking.q_id 質問がありません(SELECT tracking.q_id from tracking)tracking.user_id = '$ id' LIMIT 1 ORDER BY RAND() " –

答えて

0

私はSQLで私のために働いた質問は次のとおりです。 MySQLの

SELECT top 1 url FROM Questions 
     INNER JOIN Tracking ON 
     Questions.id != Tracking.qId 
     WHERE tracking.UserId = 1 
     ORDER BY NEWID() 

、あなたはあなたの問題を解決する必要があり

")(UUID BY ORDER" を試すことができます。

おかげに関して、 チェタンRanpariya