MySQL - получить данные из другой таблицы в соответствии с поиском? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть 2 таблицы, которые используют тот же идентификатор, что и PK, я поставил вопрос "где" в таблице 2 и получил повторное получение

Теперь я хочу использовать полученный мной идентификатор и посмотреть, что такое Имяиз таблицы 1

table 1 (Users) is 

ID Name 
1 David
2 Guy
3 Robert 
4 Helen 

table 2 (history_Users_daily )is 

ID ADDED_Money User_Date
1   0          2019-02-07
1   1          2019-02-08
1   0          2019-02-10
2   0          2019-02-07
2   0          2019-02-13
3   5          2019-02-12
4   0          2019-02-12
4   0          2019-02-13

это то, что я сделал с таблицей 2:

SELECT ID,SUM(ADDED_Money)  AS Total_Money_7_Days
from 
v7.history_Users_daily 
where ( com_id = '1' and User_DATE >= date(curdate() - 7)  )
GROUP BY ID
HAVING Total_Money_7_Days < '2'
order by Total_Money_7_Days ;

, когда я запускаю это, я вижу все идентификаторы, которые имеют менее 2

вот результат, который я получаю:

 ID Total_Money_7_Days
 1  1
 2  0
 4  0 

Теперь я хочу посмотреть, как называется каждое удостоверение личности согласно таблице 1

, поэтому в финале я получу это:

ID Name Total_Money_7_Days
1  David 1
2  Guy   0
4  Helen 0

Я пробовал все виды "Join" (примеры, которые я нашел в Google, но ни один из них не работает)

что мне нужно сделать?

Спасибо,

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Вы можете просто JOIN непосредственно к таблице Users:

SELECT h.ID, u.Name, SUM(h.ADDED_Money)  AS Total_Money_7_Days
FROM history_Users_daily h
JOIN Users u ON u.ID = h.ID
WHERE ( com_id = '1' AND User_DATE >= date(curdate() - 7)  )
GROUP BY h.ID, u.Name
HAVING Total_Money_7_Days < '2'
ORDER BY Total_Money_7_Days DESC

Вывод

ID  Name    Total_Money_7_Days
1   David   1
2   Guy     0
4   Helen   0

Демонстрация на dbfiddle

0 голосов
/ 13 февраля 2019
select t2.Id, t1.Name, t2.Total_Money_7_Days
from users t1
Join (SELECT ID,SUM(ADDED_Money)  AS Total_Money_7_Days
     from 
     v7.history_Users_daily 
     where ( com_id = '1' and User_DATE >= date(curdate() - 7)  )
     GROUP BY ID
     HAVING Total_Money_7_Days < '2'
     order by Total_Money_7_Days
     ) t2
on t2.Id = t1.Id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...