Выборка

Сергей В
Дата: 18.11.2009 14:25:01
Доброго времени суток.
Помогите плиз дереву.
Есть три таблицы связанные один ко многим.
Первая таблица ФИО с Полями: id фио; ФИО
Вторая Телефон с Полями: id телефон; Телефон; Тип телефона
Третья Тип телефона с полями: id тип телефона; Тип телефона
Как выбрать по ключу первой таблицы, записи второй и третьей таблицы в строку?
а.четакова
Дата: 18.11.2009 14:40:38
Сергей В
Доброго времени суток.
Помогите плиз дереву.
Есть три таблицы связанные один ко многим.
Первая таблица ФИО с Полями: id фио; ФИО
Вторая Телефон с Полями: id телефон; Телефон; Тип телефона
Третья Тип телефона с полями: id тип телефона; Тип телефона
Как выбрать по ключу первой таблицы, записи второй и третьей таблицы в строку?
а по каким полям первая таблица связана со второй? из приведенной структуры это явно не следует.
ё
Дата: 18.11.2009 14:41:02
...собстна, а где в 1-ой таблице чё-нить про тилифоны?
Сергей В
Дата: 18.11.2009 14:47:49
Виноват
Во второй таблице есть поле id фио и в третьей id тип телефона по ним и связь
Сергей В
Дата: 18.11.2009 14:49:50
Первая таблица ФИО с Полями: id фио; ФИО
Вторая Телефон с Полями: id телефон; id ФИО; Телефон; Тип телефона
Третья Тип телефона с полями: id тип телефона; Тип телефона
ё
Дата: 18.11.2009 14:56:41
Сергей В
Дата: 18.11.2009 16:46:03
ё

не вьеду
ё
Дата: 18.11.2009 17:14:48
SELECT DISTINCT T1.[id фио], T1.ФИО, FieldToLine([T1].[id фио]) AS ВсеТилифоны
FROM T1

Public Function FieldToLine(ID As Long) As String
Dim Adors As New ADODB.Recordset
Dim strSQL As String
    strSQL = "SELECT (T3.[Тип телефона] + ':') & T2.Телефон " & _
             "FROM T3 INNER JOIN T2 ON T3.[id тип телефона] = T2.[Тип телефона] " & _
             "WHERE (T2.[id ФИО]=" & CStr(ID) & ")"
    Adors.Open strSQL, CurrentProject.Connection, , , adCmdText
    If Not Adors.EOF Then FieldToLine = Adors.GetString(, , , ";")
    Adors.Close
    If Len(FieldToLine) > 0 Then FieldToLine = Left$(FieldToLine, Len(FieldToLine) - 2)
End Function
ё
Дата: 18.11.2009 17:17:26
Public Function FieldToLine(ID As Long) As String
Dim Adors As New ADODB.Recordset
Dim strSQL As String
    strSQL = "SELECT (T3.[Тип телефона] + ':') & T2.Телефон " & _
             "FROM T3 INNER JOIN T2 ON T3.[id тип телефона] = T2.[Тип телефона] " & _
             "WHERE (T2.[id ФИО]=" & CStr(ID) & ")"
    Adors.Open strSQL, CurrentProject.Connection, , , adCmdText
    If Not Adors.EOF Then FieldToLine = Adors.GetString(, , , ";")
    Adors.Close
    If Len(FieldToLine) > 0 Then FieldToLine = Left$(FieldToLine, Len(FieldToLine) - 1)
End Function

Сергей В
Дата: 18.11.2009 17:51:15
Огромная блогодарность
получилось
но пока буду въезжать