:: Visual Foxpro, Foxpro for DOS
WHERE портит смысл запроса JOIN
Артём
Автор

Сообщений: 136
Дата регистрации: 23.04.2001
Два запроса в конце по смыслу одинаковые, но результаты получаются разные . Почему разные результаты?
как решить проблему понятно, вопрос в том, должна ли возникать такая проблема

к делу, не относится, но смысл такой : есть чужая накладная , нужно подменить текст на "наш"
в словаре нет одного чужого названия (оно новое) - то, что в словаре нет '8' должно быть видно, как в первом запросе


CREATE CURSOR source ( order N(1), text1 C(5))
INSERT INTO source (order, text1) VALUES ( 1, '123')
INSERT INTO source (order, text1) VALUES ( 2, '234')
INSERT INTO source (order, text1) VALUES ( 3, '45678')
INSERT INTO source (order, text1) VALUES ( 4, '8')
CREATE CURSOR dict ( text2 C(10), value N(8), dict_no n(1))
INSERT INTO dict (text2, value, dict_no) VALUES ( '123', 123, 1)
INSERT INTO dict (text2, value, dict_no) VALUES ( '234', 234, 1)
INSERT INTO dict (text2, value, dict_no) VALUES ( '45678', 45678, 1)
INSERT INTO dict (text2, value, dict_no) VALUES ( '456789', 456789, 1)
INSERT INTO dict (text2, value, dict_no) VALUES ( '4', 4, 1)
INSERT INTO dict (text2, value, dict_no) VALUES ( '9', 9, 1)
SET ANSI On
SELECT order, text1, text2, value FROM source;
LEFT JOIN dict ON text1=text2
SELECT order, text1, text2, value FROM source;
LEFT JOIN dict ON text1=text2;
WHERE dict_no=1



Исправлено 2 раз(а). Последнее : Артём, 14.08.23 22:16
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
leonid

Сообщений: 3222
Откуда: Рига
Дата регистрации: 03.02.2006
Артём
Два запроса в конце по смыслу одинаковые

Если первый запрос переписать так, станет понятней?
SELECT order, text1, text2, value, dict_no FROM source;
LEFT JOIN dict ON text1=text2
Ratings: 0 negative/1 positive
Re: WHERE портит смысл запроса JOIN
Артём
Автор

Сообщений: 136
Дата регистрации: 23.04.2001
leonid
Артём
Два запроса в конце по смыслу одинаковые

Если первый запрос переписать так, станет понятней?
SELECT order, text1, text2, value, dict_no FROM source;
LEFT JOIN dict ON text1=text2
так понятно. спасибо. но для меня это вот все было удивительно и неожиданно.



Исправлено 1 раз(а). Последнее : Артём, 14.08.23 22:27
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
PaulWist

Сообщений: 14693
Дата регистрации: 01.04.2004
Артём
но для меня это вот все было удивительно и неожиданно.

Запрос обрабатывается в соответствии с Логический порядок обработки инструкции SELECT, то есть сначала произойдёт Left join, а затем будет наложен фильтр Where, кстати в данном случае Left превращается в Inner.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 15.08.23 08:33
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
PaulWist

Сообщений: 14693
Дата регистрации: 01.04.2004
2leonid

А я не понял, чем первый переписанный запрос отличается от исходного первого запроса??


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
sphinx

Сообщений: 31616
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Добавился dict_no


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
PaulWist

Сообщений: 14693
Дата регистрации: 01.04.2004
Ааа, гууд.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
of63

Сообщений: 25599
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
я не понял... ну, русский, тупой по определению

() Доб SQL-выражения не совсем мне близки, обьясните понятнее мне русскому пмеханику общенияы с базами данных. И и данные случай контакта с знатоками БД



Исправлено 1 раз(а). Последнее : of63, 15.08.23 23:43
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
sphinx

Сообщений: 31616
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Какой момент?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: WHERE портит смысл запроса JOIN
of63

Сообщений: 25599
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ну, чтобы "кузнец", по металлу, мог понять "ваше" устройв пяни думаб, вот есть таоерка старлинк (плосотьс 10-20 приство БД, устроиство вашего мира...) приемников-антенн, размером с 10 см... с кем то можно говорит, хотя смысла нет. Надо делать и частоты подавления и ЛА с этими аппваратами



Исправлено 1 раз(а). Последнее : of63, 31.08.23 22:09
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика