Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [SQL]JOIN |
Автор: Ipnet 28.6.2010, 00:08 |
Мне по заданию нужно сделать запрос с join. Но я перечитал кучу материала и никак не могу понять, для чего нужен join и какие запросы можно с ним делать. Пожалуйста объясните... |
Автор: world 28.6.2010, 00:34 | ||||
JOIN необходим для выборки данных из нескольких таблиц. Например, у нас есть две таблицы(производители и товары): Producers - id_prod - name - city Goods - id_good - id_prod - quantaty Связь между таблицами происходит по полям Producers.id_prod - Goods.id_prod Для выборки информации из таблиц мы можем использовать следующий запрос
Однако гораздо быстрее будет работать следующий вариант
Рассмотрим типы присоединений таблиц INNER JOIN необходим для получения только тех строк, для которых существует соответствие записей главной таблицы и присоединяемой LEFT JOIN Будут выбраны все записи, удовлетворяющие левой части условия, даже если они не имеют соответствия в правой таблице(в ней будет записан NULL). RIGHT JOIN отображает все строки удовлетворяющие правой части условия, даже если они не имеют соответствия в левой таблице(в ней будет записан NULL). FULL JOIN фактически является смесью LEFT JOIN и RIGHT JOIN. CROSS JOIN возвращает декартово произведение таблиц. |
Автор: Данкинг 28.6.2010, 00:40 | ||
Вот справка из хелпа к FoxPro 8.0, разобрано достаточно подробно. Конечно, не совсем по-русски, но не думаю, что это в данном случае проблема. ![]()
|
Автор: Ipnet 28.6.2010, 02:02 |
Спасибо. уже разобрался=) А вот вопрос еще: хочу сделать такую операцию UPDATE discount; SET discount.скидка=thisform.text4.Text; WHERE id_скидки=VAL(thisform.text1.Text); discount.скидка формат character. какую функцию нужно использовать чтобы вот это SET discount.скидка=thisform.text4.Text; работало? |
Автор: Ipnet 28.6.2010, 02:34 |
UP! |
Автор: Данкинг 28.6.2010, 10:03 | ||
А так-то что не работает? |
Автор: Ipnet 29.6.2010, 07:27 |
discount.скидка - формат Character. он не хочет устанавливать значение из text4. пишет типа text4 не найден... |
Автор: Данкинг 29.6.2010, 10:21 | ||
А если через переменную?
|
Автор: chip_and_dayl 29.6.2010, 11:10 |
Так может его и нету!?! И вообще, в одном месте написано Текст1, во втором Текст4. Вы уже определитесь |
Автор: chip_and_dayl 29.6.2010, 14:50 | ||||
Ой звиняюсь, попутал меня бес ![]() Добавлено через 1 минуту и 35 секунд
Надеюсь вы не в таком виде все передаете компоненту, который обрабатывает запрос, а типа следующего
|