Как ПРИСОЕДИНЯТЬСЯ к операторам SELECT 2, но отображать вывод, только если в таблице B выполнены условия из таблицы A - PullRequest
0 голосов
/ 01 марта 2020

Я практикую представления, и мне нужно присоединиться к двум таблицам (самый простой способ), но в таблице AI есть 6 строк при выполнении условий и в таблице B с теми же условиями в отношении таблицы B (то же имя столбца) , как 82.

Мне нужно показать только данные, касающиеся этих 6 строк.

CREATE VIEW myview AS 
SELECT Name AS Country, Population FROM country WHERE Population >= 9000000;
SELECT District, Name AS City, Population FROM city WHERE Population >= 9000000;

Я работаю с мировой базой данных.

_________________City_________________

ID | Name | CountryCode | District | Population

_________________Country_________________

Name | Population | Code

Пример данных:

Город

enter image description here

Страна

enter image description here

Ожидаемый результат:

enter image description here

Приветствия.

Ответы [ 2 ]

1 голос
/ 01 марта 2020

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

    CREATE VIEW myview AS 
    SELECT co.Name AS Country
        , co.Population Country_population
        , ci.District 
        , ci.Name As city
        , ci.population City_population
    FROM country co 
    INNER JOIN city ci ON  ci.CountryCode = co.Code 
    WHERE ci.population >= 9000000

затем

 select * from myview;
0 голосов
/ 01 марта 2020

Из ваших ожидаемых результатов я предполагаю, что вы хотите для каждой страны город / города с population >= 9000000, поэтому присоединитесь так:

select 
  c.Name country,
  t.district,
  t.city,
  t.population
from country c inner join city t 
on t.countrycode = c.Code 
where t.population >= 9000000;

Вам не нужно устанавливать условие population >= 9000000 для страны тоже, потому что страна с городом с population >= 9000000 наверняка удовлетворяет этому условию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...