PHP - Как объединить / объединить таблицы MySQL? - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь объединить две таблицы в PHP, используя запросы MySQLi.У меня есть база данных с таблицей 2, которая содержит: Страна | Регион (означает Континент) | Значение | Площадь (означает Итого, Сельский или Городской)

enter image description here

Мне нужно суммировать значения по регионам, поэтому я выполняю:

$query1 = mysqli_query($con,"SELECT  Country, Region, SUM(Value) as Value2 FROM table2 WHERE table2.Area='$area' GROUP BY (table2.Region IN ($region)) ");

$ query1 содержит 5 строк с соответствующими значениями континентов.Теперь я хочу получить таблицу со всеми странами и их соответствующими значениями Continen, я имею в виду, если у меня есть Испания в таблице 2 с ее значением, теперь я хочу, чтобы Испания имела ассоциированное европейское значение.

I 'Я пытаюсь выполнить этот код:

$result = mysqli_query($con,"SELECT Country,Region FROM table2 WHERE Region IN ($region)");
$result = mysqli_query($con,"SELECT Country,Value FROM $result INNER JOIN $query1 ON $result.Region = $query1.Region");

Я думаю, что ошибка в том, что я использую $ result в качестве таблицы и, возможно, этот объект не является таблицей, но я не знаю.Я получаю фатальную ошибку при выполнении последнего запроса, и он не работает.

Как получить таблицу с агрегированным значением (полученным в query1) и разных странах? Я думаю, что основная проблема заключается всинтаксис с переменными и структура результата запроса

1 Ответ

0 голосов
/ 13 июня 2018

Я думаю, вы не понимаете, что делает join.Он не группирует несколько запросов вместе.

Если я правильно понимаю ваш вопрос, то у вас есть только 1 таблица с именем table2.В этом случае вам , вероятно, не нужно join.

Если вы хотите увидеть country, region и его sum значений, то вы можете group by Country и Region.

SELECT Country, Region, sum(Value) 
FROM table2 
GROUP BY Country, Region
WHERE Region = 'Europe and Central Asia'
;

Если вы хотите увидеть region и sum значений, вы можете group by Region.

SELECT Region, sum(Value) 
FROM table2 
GROUP BY Region
;

Если это не то, что вы хотите, то, пожалуйста, отредактируйте ваш вопрос и покажите нам пример желаемого результата .В настоящее время ваши требования не ясны.

Пример желаемого результата, который поможет нам ответить на ваш вопрос.

+-------------------------+------+
|         Region          | Sum  |
+-------------------------+------+
| Europe and Central Asia | 68.0 |
| Africa                  | 59.5 |
| Arab States             | 46.0 |
+-------------------------+------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...