2017-07-07 11 views
0

私が持っているテーブルこのようなテーブルの2番目の列にすべての結果を得る:表の最初の列に1つの結果を取得し、

ユーザー

id | firstname | lastname | date 
-------------------------------------------------- 
    1 | paul  | sy   | date 

    2 | james  | curry  | date 

    3 | kevin  | leonard | date 

docs_list

id | user_id | url | title | date 
------------------------------------------------------- 
    1 |  1  | url | title | date 
    2 |  2  | url | title | date 
    3 |  1  | url | title | date 

firstnamelastnameの1件を取得したいと思います。users.iddocs_list.user_idORDER BY docs_list.date DESC所与IDに等しい場合に基づいurltitleの結果。

これは、私はそれを照会する方法です:

SELECT users.first, users.last, docs_list.urlcode, docs_list.title 

FROM users 

INNER JOIN docs_list 

ON users.id = docs_list.user_id 

WHERE docs_list.user_id = {$value} 

ORDER BY docs_list.date DESC 

問題は、私は(私はdocs_list結果を持っているどのように多くの行に等しい)非常に多くのfirstnamelastname結果を得た、ということです。私は1 firstnamelastnameが必要です。

どうすればいいですか?

答えて

0

与えられたテーブルに基づいて作成したこのクエリを試してみてください。

SELECT u.firstname, u.lastname 

FROM users u 

JOIN docs_list dl 

ON u.id = dl.user_id 

WHERE dl.user_id = {$value} 

GROUP BY 1 

firstnameとlastnameの結果を1行にしたい場合は、firstnameとlastnameだけを選択できます。なぜなら、URLとタイトルがあれば、それらはそれぞれの行ごとに異なる値を持つので、URLとタイトルの値が異なるため、それらをグループ化するとエラーになります。 *私が間違っていると私を訂正してください:D

+0

私は 'GROUP BY users.firstname、users.lastname'と' GROUP BY docs_list.url、docs_list.title'を使用しようとしましたが、両方とも動作しませんでした。 –

+1

あなたの与えられたテーブルから私が作った私の質問を使ってみてください。 –

+0

と同じ結果になりました。非常に感謝の迅速な応答に感謝します。 –

0

私はあなたの名前と姓が重複していないWebページでクリーンなプレゼンテーションをしたいと思いますか?そうであれば、データの検索からプレゼンテーションを分離する必要があると思います。 (またはあなたのデータを別々に取得することができます) 私の考え方では、URLや他の重複しないフィールドなどの他のデータを失う原因となるため、「グループ化」を使用することはできません。

+0

'名前と姓が重複しないで'はい、私はそれを必要としないので、私はそれの1ペアが必要です。では、2つのクエリを実行する必要があると言いましたか? 「グループでは使えない」「はい、できません。 –

関連する問題