Mysql Регистрация и проблемы - PullRequest
0 голосов
/ 10 января 2019

У меня есть следующие две таблицы ..

table-1
|id| text1  | text2  |
----------------------
|1 | orange | banana |
|2 | banana | NULL   |
|3 | orange | NULL   |
|4 | papaya | orange |
|5 | papaya | papaya |
|6 | papaya | papaya |
|7 | mango| NULL   |

table-2
|id| id-table-1 |
-----------
|1 |   1  |
|2 |   3  |
|3 |   4  |
|3 |   6  |
|3 |   7  | 

То, что я хочу, - это только идентификатор, указанный в таблице 2, в левом соединении должен быть рассчитан и показан. если text2 не равно Null, то данные должны считаться как 1. Но если text2 пусто или равно нулю, то считать данные text1 равны 1. Результат должен быть таким:

если я скажу где text1 или text2 == банан, я должен получить результат как

name   count
banana  1

ИЛИ, Апельсиновый пакет следующий ..

name   count
orange  2

как мне этого достичь? Нужна помощь, пожалуйста?

1 Ответ

0 голосов
/ 10 января 2019

Этот запрос должен делать то, что вы хотите:

SELECT COALESCE(t1.text2, t1.text1) AS name,
       COUNT(*) AS count
FROM `table-2` t2
LEFT JOIN `table-1` t1 ON t1.id = t2.`id-table-1`
GROUP BY name

Выход:

name    count
banana  1
mango   1
orange  2
papaya  1

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

...