MySQL подсчет из той же таблицы и данные из другой таблицы

0

Я хочу показать имя зарегистрированных пользователей со счетом regid, указав ответ, я не знаю, какой будет правильный запрос для получения результатов.

Вот таблицы.

details_table

id  regid  replyid  
-------------------
1   1      2  
2   1      3  
6   2      4  
5   3      4  
8   2      5  
9   3      5  
10  4      5  
11  5      5  
12  2      6  
13  6      6  
14  4      6  
15  7      7  
16  8      7  
17  9      7  
18  10     8  
19  2      9  
20  2      10  
21  11     10  
22  12     10  

reg_table

id  regname  
---------------
1      Sam  
2      Ash  
3      Tina  
4      Rohny  
5      Martin  
6      Natasha
7      Natalia
8      Kim
9      Alex
10     John  
11     Neil  
12     Peter  

Итак, если answerid ie (10) выбирается из details_table по предложению where, он должен отображать 2,11,12 ie (Ash, Neil, Peter) из reg_table со счетом Ash = 5, Neil = 1, Peter = 1

  • 0
    Не могли бы вы объяснить немного подробнее, как Ash = 5 для replyid = 10?
  • 0
    @Adam Prax: число - это число вхождений значения REG.id в столбце DETAILS.regid.
Показать ещё 1 комментарий
Теги:

4 ответа

1
Лучший ответ
SELECT a.id, a.regname, COUNT(1)
  FROM reg_table a, details_table b,
    details_table c
 WHERE b.replyid=10
   AND b.regid = a.id
     AND c.regid = a.id
GROUP   BY a.id, a.regname
  • 0
    считать за пепел = 5, Нил = 1 и Петр = 1
  • 0
    Разве это не то, что вы заявили?
Показать ещё 3 комментария
0
SELECT r.regid, r.regname, count(*)
FROM (
  SELECT DISTINCT regid
  FROM details_table
  WHERE replyid = 10
 ) rg 
 JOIN reg_table r ON rg.regid = r.regid
 JOIN details_table d ON r.regid = d.regid
GROUP BY r.regid
  • 0
    если я добавляю details_table.replyid, он отображает только два результата, но на самом деле их 3
  • 0
    @dave Обновлено ..
0

попробуйте это

select count(dt.regid) as cnt, regname from details_table dt, reg_table rt where dt.regid = rt.Regid and dt.replyid = 10 group by rt.Regid
  • 0
    результаты подсчета для ASH = 5, neil = 1 и peter = 1
0
SELECT reg_table.regname, count(*) from reg_table,  details_table where details_table.regid = reg_table.id GROUP BY reg_table.id
  • 0
    Отсутствует важный GROUP BY
  • 0
    скажите пожалуйста группу по какой колонке?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню