Я застрял в формировании MySQL-запроса. У меня 6 таблиц с похожими столбцами. Прежде чем вы спросите, их нужно обновлять отдельно и удалять; вместе с количеством данных.
Таким образом, чтобы получить сумму из нескольких таблиц, я использую SELECT SUM (x) FROM (SELECT COUNT (значение) как x и т.д.),
Чтобы получить один уникальный идентификатор, я использую DISTINCT (значение). Теперь мне нужно объединить их в запрос с двумя столбцами, поэтому у меня есть уникальное значение и количество.
Мои данные выглядят так: например, таблица 1 (умножить на 6):
till_no | fruit | vegetables
123 | apple | null
123 | apple | carrot
125 | apple | pear
124 | apple | null
Я хочу 123 | 2, 124 | 1, 125 | 1
SELECT DISTINCT(y), SUM(a) FROM (
(SELECT till_no as y, (SELECT COUNT(till_no) FROM Shop1) as a FROM Shop1 c)
UNION (SELECT till_no as y, (SELECT COUNT(_till_no) FROM Shop2)
as a FROM Shop2 c)
) multipleTables
Анкит поставил меня на правильный путь.
Решение:
SELECT z, SUM(y)
FROM (SELECT ea as z, COUNT(ea) as y FROM table1 GROUP BY ea
UNION
SELECT ea as z, COUNT(ea) as y FROM table2 GROUP BY ea
UNION
SELECT ea as z, COUNT(ea) as y FROM table3 GROUP BY ea
UNION
SELECT ea as z, COUNT(ea) as y FROM table4 GROUP BY ea
UNION
SELECT ea as z, COUNT(ea) as y FROM table5 GROUP BY ea
UNION
SELECT ea as z, COUNT(ea) as y FROM table6 GROUP BY ea)
multipletables
GROUP BY y
Трюк к решению решения состоит в том, чтобы разбить его на небольшие шаги... логически 1 + 1 уверен, что удары 47 + 126
Нет необходимости использовать DISTINCT. Предложение GROUP BY возьмет на себя это от вашего имени. Вы можете попробовать выполнить запрос -
SELECT CONCAT(y, COUNT(y))
FROM (SELECT till_no as y FROM Shop1
UNION
SELECT till_no as y FROM Shop2
UNION
SELECT till_no as y FROM Shop3
UNION
SELECT till_no as y FROM Shop4
UNION
SELECT till_no as y FROM Shop5
UNION
SELECT till_no as y FROM Shop6) multiple tables
GROUP BY y