在表的第一列中获得1个结果,并在表的第二列中获取所有结果

时间:2017-07-07 03:14:51

标签: mysql phpmyadmin

我有这样的表格:

用户

   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个结果以及urltitle 的所有结果,具体取决于 { {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_listfirstname

那我该怎么做呢?

2 个答案:

答案 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"因为它会导致您丢失其他数据,例如网址和其他非重复字段。