2017-02-16 4 views
0

У меня есть две таблицы, каждая из которых имеет поле varchar (10), называемое «palin», и я хочу, чтобы MySQL-запрос получил все разные значения «palin» из 2 таблицы и подсчитать, сколько строк в общей сложности имеют каждый "Пэйлин" значение, например:MySQL Выберите Distinct values ​​из 2 таблиц и Count

table1: id1/palin1, id2/palin2, id3/palin3

table2: id1/palin1, id2/palin3, id3/palin4

Результат: palin1/2, palin2/1, palin3/2, palin4/1

Я сделал это 2 Цюй (один для каждой таблицы), используя «SELECT DISTINCT palin, COUNT (*) FROM table1 GROUP BY palin», затем «SELECT DISTINCT palin, COUNT (*) FROM table2 GROUP BY palin», а затем суммируйте оба COUNTS, d нужно сделать все это в одном запросе.

Заранее благодарен!

+0

Я также сделал это, чтобы получить все разные значения «palin» из обеих таблиц, но без COUNT: «SELECT DISTINCT palin FROM (SELECT palin FROM table1 UNION SELECT palin FROM table2) t GROUP BY palin« – Puni

+0

Я только что нашел ответ в другой теме, спасибо в любом случае и извините: http://stackoverflow.com/questions/6712127/select-countdistinct-name-from-several-tables?rq=1 – Puni

ответ

0

Это не понимает, почему вы хотите объединить с различными значениями из 2 таблиц, но попробуйте следующее:

select distinct palin, count(palin) from table1 union all select distinct palin, count(palin) from table2 group by palin; 

Союз вовсе отфильтровывать ту же запись, объединение делает.

Надеюсь, это поможет.

+0

Точный запрос выглядит так: " SELECT x.palin, COUNT (x.palin) FROM (SELECT palin FROM table1 UNION ALL SELECT palin FOM table2) x GROUP BY x.palin " – Puni

0

Точный запрос, кажется: "SELECT x.palin, COUNT (x.palin) FROM (SELECT Пэйлин FROM table1 UNION ALL SELECT, Пэйлин FOM table2) х GROUP BY x.palin"

Спасибо!

Смежные вопросы