Задавайте вопросы, мы ответим
Вы не зашли.
table1 = countryId region1 region2 region3
table2 = countryId russianName
надо выбрать из первой таблицы записи (region1, region2, region3) по countryId и заменить их человеческими именами russianName из второй таблицы table2.countryId = region1, table2.countryId = region2, table2.countryId = region3
не ругается на синтаксис, но и на выходе ничего(
SELECT s.region1, s.region2, s.region3, n1.russianName AS name1, n2.russianName AS name2, n3.russianName AS name3 FROM table1 s
LEFT JOIN table2 n1 ON n1.countryId = s.region1
LEFT JOIN table2 n2 ON n2.countryId = s.region2
LEFT JOIN table2 n3 ON n3.countryId = s.region3
WHERE s.countryId = "xxx"
по истечение 2 суток и чтения всевозможных мануалов вариантов больше не осталось ((
Помогите, пожалуйста!!!
Отредактированно orangecat (02.05.2010 20:59:07)
Неактивен
1. Лучше используйте просто JOIN (зачем Вам тут левые?);
2. именуйте колонки как-то логичнее — если во второй таблице ключом
является номер региона (а не страны, как у Вас написано), то назовите
его regionId, чтобы не создавать путаницы;
3. Запрос в остальном нормальный — просто данных нету
--
А если колонки именованы правильно, то у Вас ошибка в Вашей логике
и надо делать что-то типа
SELECT region1, region2, region3, russianName
FROM table1 JOIN table2 USING (countryId);
Неактивен
Спасибо!
3й пункт оказался в точку. Выборку надо было делать по другой колонке
Неактивен