PDA

Просмотр полной версии : Помогите с sql


MDK
23-11-2009, 22:58
Есть таблица access типа:В DBLookupComboBox
KeyFields->Id
ListFields->Фамилия
ListSource->DataSource->ADOTable
Пользователь вводит отдельно фамилию. Как сделать так чтобы в DBLookupComboBox была по умолчанию выбрана эта фамилия? Я догадываюсь что нужно из ADOTable выудить для этой фамилии Id. Но как это сделать покрасивее и желательно только средствами делфи без SQL.

MDK
26-11-2009, 22:38
Ладно с пердыдущим я справился. Теперь другой вопрос. Есть двет таблицы:
одна с полями "Фамилия" "Имя" "Возраст", другая - "Фамилия" "Имя" "Вес"(Фамилии и имена в таблицах разные). Как будет выглядеть SQL запрос, чтобы в итоге получить таблицу "Фамилия" "Имя" "Возраст" "Вес"?

GlukoGen
26-11-2009, 22:55
давно я скуэль не юзал но должно быть что-то типа select t1.Фамилия, t1.Имя, t1.Возраст, t2.Вес from t1,t2 where t1.Фамилия=t2.Фамилия
где т1 и т2 соответствующие таблицы
зайди на sql.ru там всё разжёвано

moro
26-11-2009, 22:59
SELECT a.[Фамилия], a.[Имя], a.[Возраст], b.[Вес] FROM [Одна таблица] a
INNER JOIN [Другая таблица] b ON a.[Фамилия]=b.[Фамилия] AND a.[Имя]=b.[Имя]

а лучше объединить эти таблицы в одну с искусственным ключом

MDK
26-11-2009, 23:02
В том-то и соль что фамилии разные. Твой запрос выдаст пустой результат, потому-что фамилия, которая бы встречалась и в первой таблице, и во-второй, отсутствует .

moro
26-11-2009, 23:06
тогда FULL JOIN

MDK
26-11-2009, 23:34
INNER JOIN запрос выполняется, но результат пустой, а на FULL JOIN access ругается "Ошибка синтаксиса в предложении FROM"

moro
26-11-2009, 23:36
хотя нет
SELECT [Фамилия], [Имя], [Возраст], NULL AS [Вес] FROM [Одна таблица]
UNION
SELECT [Фамилия], [Имя], NULL AS [Возраст], [Вес] FROM [Другая таблица]
Хотя я вопще не понял чего ты хочешь

а в аксесе действительно нет FULL JOIN

MDK
26-11-2009, 23:45
LEFT OUTER и RIGHT OUTER работают, а на просто OUTER ругается

MDK
27-11-2009, 00:08
Есть
В результате SQL запроса хочу получить
Предложенный Вами запрос
Работает только наполовину: возраст выводит, а вес - пустой столбец

GlukoGen
27-11-2009, 00:12
а зачем тогда их объединять если фамилии разные?
фигня получается, машина камаз, мотор от запорожца, багажник от нивы.

moro
27-11-2009, 00:14
если ты правильно вбил мой запрос - то он будет работать так как тебе надо.

есть возможность наличия одного человека в обоих таблицах?

MDK
27-11-2009, 00:51
Понял почему у меня не работает, если NULL объединять с полем типа дата/время, то получится пустой столбец. Наличие одного человека в обоих таблицах невозможно.