Показать сообщение отдельно
Старый 21.11.2006, 06:05
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 4  
Ответить с цитированием
Chas
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
есть еще вопрос. он вообще по sql'ю, но запостю сюда, чтобы не плодить темы.

итак, есть таблица langtypes (langID,langName) и таблица lang(textID,langID,val).
Есть, например, записи.

Таблица langtypes
(langID,langName)
1.........russian
2.........english
3.........dutch

Таблица lang
(textID,langID,val)
1......1.............Алушта
1......2.............Alushta
2......1.............Пансионат расположен в горной местности
2......2.............Pansion placed in rocky region

Т.е. появился новый язык "dutch", но для него записей в lang нет.
Как составить запрос, который вывел бы все записи по одному textID но для всех langID, так, что если langID не существет, то val=null. Т.е., для
textID например 1 запрос выбрал:

1......1.............Алушта
1......2.............Alushta
1......3.............null

Я здесь не очень шарю. Попробовал
SELECT * FROM ta_langtypes
LEFT JOIN ta_lang ON ta_langtypes.id=ta_lang.langID WHERE textID=1;

основываясь на примере
Цитата:
SELECT table1.* FROM table1
LEFT JOIN table2 ON table1.id=table2.id
WHERE table2.id IS NULL;

This example finds all rows in table1 with an id value that is not present in table2 (that is, all rows in table1 with no corresponding row in table2).
но не катит. вывел только записи для существующих langID. Я так понимаю, проблема в двойном индексе?
__________________
~
Never trouble trouble till trouble troubles you!