Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 303
от 15.11.2007, 08:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 456, Экспертов: 60
В номере:Вопросов: 1, Ответов: 7


Вопрос № 108693: select * from Adres, FIO Adrec - таблица из счётчика и 1 поля Адрес, FIO - та же структура, но с полем FIO. При приведённом выше запросе выдаёт в DBGrid такого плана таблицу: Код ФИО Адрес 1 Фам1 Ад1 1 Фам2 Ад1 1 Ф...

Вопрос № 108.693
select * from Adres, FIO

Adrec - таблица из счётчика и 1 поля Адрес, FIO - та же структура, но с полем FIO.
При приведённом выше запросе выдаёт в DBGrid такого плана таблицу:

Код ФИО Адрес
1 Фам1 Ад1
1 Фам2 Ад1
1 Фам3 Ад1
2 Фам2 Ад2
2 Фам3 Ад2
2 Фам1 Ад2
3 Фам3 Ад3
3 Фам1 Ад3
3 Фам2 Ад3

А по идее должно было быть так:

Код ФИО Адрес
1 Фам1 Ад1
2 Фам2 Ад2
3 Фам3 Ад3
Отправлен: 09.11.2007, 13:32
Вопрос задал: Mamay (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Некто
Здравствуйте, Mamay!

select * from Adres t1, FIO t2 WHERE t1.имя_поля_счетчика = t2.имя_поля_счетчика
Ответ отправил: Некто (статус: 4-ый класс)
Ответ отправлен: 09.11.2007, 13:36
Оценка за ответ: 5

Отвечает: Архангельский Андрей Германович
Здравствуйте, Mamay!

Select * from Adres a, FIO f
where a.ID=f.ID
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 09.11.2007, 13:49
Оценка за ответ: 5

Отвечает: Зиновьев Дмитрий Владимирович
Здравствуйте, Mamay!
Ну а где условие связки таблиц?
select * from Adres a, FIO f WHERE f.Адрес=a.Адрес
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 3-ий класс)
Ответ отправлен: 09.11.2007, 14:31

Отвечает: Евгений Неверов
Здравствуйте,

SELECT * FROM Adres, FIO WHERE Adres.id = FIO.id

(id — имя поля со счётчиком)
Ответ отправил: Евгений Неверов (статус: Студент)
Ответ отправлен: 09.11.2007, 14:35

Отвечает: Dubrovin
Здравствуйте, Mamay!
правильно что выдаётся, там просто одно на другое множится )))
это как пароли подбирать, все варианты ))))

чем у тебя связаны эти две таблица ???
Ответ отправил: Dubrovin (статус: 3-ий класс)
Ответ отправлен: 09.11.2007, 17:58

Отвечает: Челноков Виктор Альбертович
Здравствуйте, Mamay!
При соединении таблиц надо обязательно указывать поля в обоих таблицах по которым происходит связывание. Если не указать то происходит связывание всех строк таблиц в различных вариантах так называемое "декартово соединение" как у Вас.
Попробуйте следующее:
select a.код , f.фио , a.адрес from Adres a inner join FIO f on a.код = f. код
Успехов.
Ответ отправил: Челноков Виктор Альбертович (статус: 3-ий класс)
Ответ отправлен: 10.11.2007, 09:39

Отвечает: Nomadfromx2007
Здравствуйте, Mamay!
У вас делается выборка из двух таблиц, но нет условия, которое связывает их. Поэтому просто выбираются все записи из всех таблиц.
Судя по всему код привязки - поле "Код", поэтому могу предположить, что запрос должен быть такой:

Приложение:

Ответ отправил: Nomadfromx2007 (статус: 1-ый класс)
Ответ отправлен: 12.11.2007, 02:06
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное