Объединить стол MySQL

Я попал к столу нужно объединить в 1

Table 1 :
| ID | FEEDBACK_VALUE  |
|  1 | EMAILS          |
|  2 | WALK IN         |
|  3 | SMS BLAST       |
|  4 | SOCIAL MEDIA    |
|  5 | NEWSPAPER       |
|  6 | FAMILY & FRIEND |
|  7 | OTHERS          |

Table 2 :
| ID | FEEDBACK_ID |
|  1 |           1 |
|  2 |           2 |
|  3 |           2 |
|  4 |           7 |
|  5 |           7 |
|  6 |           7 |
|  7 |           4 |
|  8 |           4 |
|  9 |           3 |

Table 3 :
| ID | FEEDBACK_VALUE  | FEEDBACK_RECEIVE |
|  1 | EMAILS          |                1 |
|  2 | WALK IN         |                2 |
|  3 | SMS BLAST       |                1 |
|  4 | SOCIAL MEDIA    |                2 |
|  5 | NEWSPAPER       |                0 |
|  6 | FAMILY & FRIEND |                0 |
|  7 | OTHERS          |                3 |

Из таблицы 1 и 2, Как я могу получить результат, как таблица 3, используя mysql? Спасибо

0

Решение

Просто используйте подзапрос, как показано ниже:

SELECT A.*, (SELECT COUNT(*) FROM TABLE2 B WHERE A.ID=B.FEEDBACK_ID) AS FEEDBACK_RECEIVE
FROM TABLE1 A;

Увидеть ДЕМО на SQL Fiddle

0

Другие решения

Вы можете использовать левый jojn и подзапрос с count group by

  select t1.ID, t1.FEEDBACK_VALUE, ifnull( my_count,0) feedback_receive
from table1 t1
left join (

select FEEDBACK_ID, count(*) as my_count
from table 2
group by FEEDBACK_ID

) t   on t1.ID = t.FEEDBACK_ID
2

Или, если меньше кода, это ваша вещь …

SELECT x.*
, COUNT(y.id) total
FROM table_1 x
LEFT
JOIN table_2 y
ON y.feedback_id = x.id
GROUP
BY x.id;
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector