我有这样的表格:
用户
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
我希望获得firstname
和lastname
的1个结果以及url
和title
的所有结果,具体取决于 { {1}}和users.id
等于给定docs_list.user_id
的 id 。
所以这就是我查询它的方式:
ORDER BY docs_list.date DESC
问题是,我得到了很多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
和firstname
个结果(等于lastname
结果中有多少行)。我只需要1 docs_list
和firstname
。
那我该怎么做呢?
答案 0 :(得分: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获取一行结果,则只能选择firstname和lastname。因为如果有url和title,它们对每一行都有不同的值,所以如果你按它们分组,我会出错,因为url和title有不同的值。 *如果我错了,请纠正我:D
答案 1 :(得分:0)
我认为你想在网页上做一个没有重复的名字和姓氏的干净的演示文稿?如果是这种情况,我认为您需要将演示文稿与数据检索分开。 (或者您可以单独检索数据) 从我的角度来看,你不能使用" group by"因为它会导致您丢失其他数据,例如网址和其他非重复字段。