#sql
#sql
Вопрос:
У меня есть таблицы ниже
Основная таблица: tblMain
Phase Country City
AAA India Bangalore
AAA USA Chicago
ZZZ USA
ZZZ UK
Подтаблица: tblSub
Phase Country City Value
AAA USA Chicago 3
AAA USA NY 6
AAA UK London 5
AAA India Bangalore 6
AAA India Delhi 9
ZZZ USA Chicago 7
ZZZ UK London 8
Ожидаемый результат
Phase Country City Value
AAA India Bangalore 6
AAA USA Chicago 3
ZZZ USA 7
ZZZ UK 8
Я хочу объединить это с моей основной таблицей, в которой есть фаза, страна и город, однако условие
Для фазы «ZZZ» я хочу присоединиться только по стране, в то время как для фазы «AAA» я хочу присоединиться к стране и городу. Возможно ли это сделать в SQL-запросе без хранимой процедуры или временных таблиц
Я хочу добиться этого в простом запросе. Заранее спасибо!!!
Ответ №1:
SELECT *
FROM This_Table TT
LEFT JOIN Main_Table MT ON TT.Countrry = MT.Country
AND TT.Phase = 'ZZZ'
LEFT JOIN Main_Table MT2 ON TT.Countrry = MT2.Country
AND TT.City = MT2.City
AND TT.Phase = 'AAA'
Комментарии:
1. Спасибо Али! С запросом, как мне выбрать значение?
2. Не проблема, просто добавьте имена столбцов в оператор select вместо
*
убедитесь, что вы используете имя из двух частей, т.е.TableName.ColumnName
в вашем случае вы будете использоватьTableAlias.ColumnName
.3. Что-то вроде этого??? ВЫБЕРИТЕ TT.Phase, TT.Country, TT.City, MT.Value, MT2.Value ИЗ This_Table TT СЛЕВА ПРИСОЕДИНИТЬСЯ К Main_Table MT НА TT.Countrry = MT.Country И TT.Phase = ‘ZZZ’ СЛЕВА ПРИСОЕДИНИТЬСЯ К Main_Table MT2 НА TT.Countrry = MT2.Country И TT. City = MT2.City И TT.Phase = ‘AAA’
4. Вы буквально скопировали мой запрос, вам нужно использовать фактические имена таблиц и имена столбцов: S .
5. я знаю, но вместо *, если я даю столбцы значений, я получаю два разных столбца..
Ответ №2:
Это должно сделать это:
WHERE
(a.phase = 'ZZZ' AND a.country = b.country)
OR
(a.phase = 'AAA' AND a.country = b.country AND a.city = b.city)
Комментарии:
1. Можете ли вы предоставить мне полный запрос, предположим, что имя моей основной таблицы — MainTable и имеет столбцы Phase, Country, City
2. В основном это есть в вашем комментарии к сообщению М.Али. Это сообщество ожидает, что вы сделаете некоторую работу самостоятельно. Для решения проблемы, с которой вы столкнулись, были представлены два жизнеспособных решения. Этого должно быть достаточно, и вы должны быть в состоянии взять его отсюда.