Просмотр полной версии : Помогите с sql
Есть таблица access типа:В DBLookupComboBox
KeyFields->Id
ListFields->Фамилия
ListSource->DataSource->ADOTable
Пользователь вводит отдельно фамилию. Как сделать так чтобы в DBLookupComboBox была по умолчанию выбрана эта фамилия? Я догадываюсь что нужно из ADOTable выудить для этой фамилии Id. Но как это сделать покрасивее и желательно только средствами делфи без SQL.
Ладно с пердыдущим я справился. Теперь другой вопрос. Есть двет таблицы:
одна с полями "Фамилия" "Имя" "Возраст", другая - "Фамилия" "Имя" "Вес"(Фамилии и имена в таблицах разные). Как будет выглядеть SQL запрос, чтобы в итоге получить таблицу "Фамилия" "Имя" "Возраст" "Вес"?
GlukoGen
26-11-2009, 22:55
давно я скуэль не юзал но должно быть что-то типа select t1.Фамилия, t1.Имя, t1.Возраст, t2.Вес from t1,t2 where t1.Фамилия=t2.Фамилия
где т1 и т2 соответствующие таблицы
зайди на sql.ru там всё разжёвано
SELECT a.[Фамилия], a.[Имя], a.[Возраст], b.[Вес] FROM [Одна таблица] a
INNER JOIN [Другая таблица] b ON a.[Фамилия]=b.[Фамилия] AND a.[Имя]=b.[Имя]
а лучше объединить эти таблицы в одну с искусственным ключом
В том-то и соль что фамилии разные. Твой запрос выдаст пустой результат, потому-что фамилия, которая бы встречалась и в первой таблице, и во-второй, отсутствует .
INNER JOIN запрос выполняется, но результат пустой, а на FULL JOIN access ругается "Ошибка синтаксиса в предложении FROM"
хотя нет
SELECT [Фамилия], [Имя], [Возраст], NULL AS [Вес] FROM [Одна таблица]
UNION
SELECT [Фамилия], [Имя], NULL AS [Возраст], [Вес] FROM [Другая таблица]
Хотя я вопще не понял чего ты хочешь
а в аксесе действительно нет FULL JOIN
LEFT OUTER и RIGHT OUTER работают, а на просто OUTER ругается
Есть
В результате SQL запроса хочу получить
Предложенный Вами запрос
Работает только наполовину: возраст выводит, а вес - пустой столбец
GlukoGen
27-11-2009, 00:12
а зачем тогда их объединять если фамилии разные?
фигня получается, машина камаз, мотор от запорожца, багажник от нивы.
если ты правильно вбил мой запрос - то он будет работать так как тебе надо.
есть возможность наличия одного человека в обоих таблицах?
Понял почему у меня не работает, если NULL объединять с полем типа дата/время, то получится пустой столбец. Наличие одного человека в обоих таблицах невозможно.