|
|
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Уважаемые Господа, простая на первый взгляд задача оказалась весьма проблематичной. Есть база (IB) и клиентская программа написанная на Delphi (FIB+). В базе есть таблица примерно с такой условной структурой: Код : Integer Код_Склада : Integer Код_Товара : Integer Количество : Integer .... и еще несколько полей, которые в данный момент не важны. Данные по всем складам (число складов чуть болше 60) для всех категорий товара (больше 5000) хранятьтся в одной таблице, один и тотже товар (поле Код_Товара) имеется на нескольких разных складах (поле Код_склада) в разном количестве (поле Количество), может быть Количество=0. Необходимо сделать выборку из таблицы для товара (Код_Товара) имеющегося на одном складе (условно большом) и отсутствующего на другом (условно малом). IB и SQL я практически не знаю, с Delphi правда получше, поэтому первая мысль была такая: "Ну это просто..." A - номер "большого" склада В - номер "малого" склада SELECT ... WHERE SKLAD_CODE=А AND SKLAD_CODE<>B AND C_OSTAT>0; примерно через полчаса я понял какую глупость написал и то, что одним Select не обойтись :( В общем большая просьба к почтенной публике, помогите советом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 12:37:32 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Select ..... where (sklad_code=A) and (kod_tovar not in (select kod_tovar .... where sklad_code=B)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 13:05:29 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А потом долго биться головой об стенку, пока не запомнишь, что: КОНСТРУКЦИЯ WHERE NOT IN (SELECT...) НЕЭФФЕКТИВНА ! (в силу архитектурных особенностей InterBase) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 13:43:56 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
По моему, Мимопроходящий умничает за наш, за ламерский, счет. "Неэффективна" - а как надо-то - не говорит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:01:36 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
МОЖЕТ ТАК ? Код: plaintext 1. 2. 3. 4. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:03:07 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий - всегда отсылает к документации !!! Его ответы можно даже не читать ... Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:04:32 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Помимо документации я могу отсылать и сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:11:18 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, вот пожалуемся на тебя модератору, что ты такой гад! Теперь не хочеться заходить на этот форум из-за тебя! Спросишь чтонибудь, а тебя накй пошлют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:13:28 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Сходил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:14:12 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:14:58 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
SSB777Необходимо сделать выборку из таблицы для товара (Код_Товара) имеющегося на одном складе (условно большом) и отсутствующего на другом (условно малом)...одним Select не обойтись Ответ заключается в вопросе. Вот один из вариантов (и весьма быстрый) Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:19:00 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
На ПТ? Нормальным пацанам тем делать нечего (почти) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:19:39 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Вижу нормальные пацаны типа тебя предпочитают трепаться и самоутверждаться на профессиональных форумах! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:21:03 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
2FreemanZAV: Не, не катит. Ему нужно найти только тот товар , который есть на складе А и отсутсвует на складе В ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:21:50 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А че такое ПТ и как ставить смайлики в тексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:22:09 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
2dalai lamer: И кто начал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:22:59 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Я не самоутверждался и не издевался над задающими вопросы! Я лишь поднял тему о твоем поведении! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:24:05 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А все боятся меня поддержать, потому что ты грубо ответишь! зы. где модератор?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:24:39 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
ПТ - это тут А смайлик на этом сайте только один (почему-то) Рисуешь так: Код: plaintext Получается так - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:25:22 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Точняк. Не катит. Получается не И а ИЛИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:27:11 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Простите Господа, но Вы отвлеклись от темы :-) Отдельно спасибо ответившим конструктивно , вечером буду пробовать, завтра смогу описать результат. Опять же отдельно вопрос Мимопроходящему, а что значит НЕЭФФЕКТИВНА? не работает? работает медленно? работает неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:28:11 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
SSB777 Я немного подумал и вот кажется самое то, что нужно Код: plaintext 1. 2. 3. 4. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:32:09 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
автора что значит НЕЭФФЕКТИВНА? Вот это уже другой разговор. Дела в том, что IB при выполнении запроса типа WHERE ... [NOT] IN (SELECT...) не кеширует результаты подзапроса. И как следствие, этот запрос будет дёргаться каждый раз заново, для каждой записи фильтруемой таблицы. Как следствие, производительность такой конструкции очень низкая и её следует избегать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:33:12 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
> Вот это уже другой разговор. Это ты решил разжевать не потому что тебя "правильно" спросили, а потому что моя критика снизу на тебя подействовала! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:38:21 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
2dalai lamer: Мальчик, вернись в свой ПТ. У тебя ж там 68% постов. Не мешай дядям работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:40:32 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:41:58 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
DnicoFROM TABLE1 B1 JOIN TABLE1 B2 ON Уточните пожалуйста, что Вы понимаете под B1 и B2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:46:44 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
ЭТо алиасы таблиц ... есть такая приблуда ... чтобы не указывать длинное название таблицы Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:48:49 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Под B1 и B2 он понимает алиасы таблиц. В данном конкретном случае имеет место быть сомообъединение таблицы. Т.е. соединение с самой собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 14:50:03 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Dnico & Мимопроходящий Как я уже говорил, пои познания SQL близки к нулевым, поэтому не обезсудьте, хочу разобраться: реальная таблица связана с компонентом taSklad : TpFIBDataSet; из нее с помощью обсуждаемого SELECT формируется "виртуальная" таблица taSkladV : TpFIBDataSet; которая лежит на той же форме (скажем ее имя "Form")что и реальная и связана с видимым компонентом DGCL_Compare : TdxDBGrid; SELECT я пишу прямо в инспекторе обьектов в свойстве обьекта TpFIBDataSet или потом в процессе выполнения программы через свойство: Form.taSkladV.selectSQL[0]:='SELECT Sklad.*,CART.* Form.taSkladV.selectSQL[1]:='FROM Sklad left outer join CART on(Sklad.КодТовара=CART.CODE)'; Form.taSkladV.selectSQL[2]:='WHERE C_OSTAT>0 ... здесь проблема ! таблица CART, с которой выполняется join - просто картотека (КОД товара : Наименование товара), в первом приближении этот join можно и не делать, чтоб не смущал, Собственно вопрос Dnico что мне делать с алиасами В1 и В2? если я напишу Var A,B : String; .... A:=какой-то склад; В:=какой-то другой склад; ... Form.taSkladV.close; Form.taSkladV.selectSQL[0]:='SELECT Sklad.* Form.taSkladV.selectSQL[1]:='FROM Sklad B1 JOIN Sklad B2 ON (B1.TOVAR_CODE = B2.TOVAR_CODE)'; Form.taSkladV.selectSQL[2]:='WHERE B1.SKLAD_CODE='+A+' AND B2.SKLAD_CODE='+B+' AND B1.C_OSTAT=0'; Form.taSkladV.open; разве InterBase не облает меня нехорошими словами при попытке выполнить такой Select? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 16:09:50 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
SSB777таблица CART, с которой выполняется join - просто картотека (КОД товара : Наименование товара) Сразу нельзя было сказать??? Попробуй следующие варианты. 1-й вариант: Код: plaintext 1. 2. 3. 4. 5. 2-й вариант: Код: plaintext 1. 2. 3. 4. В первом варианте ты можешь получить, например сумму остатков на складе A. Во втором варианте получишь только список товаров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 08:14:20 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
FreemanZAVСразу нельзя было сказать??? А что о ней говорить? эта таблица вообще вспомогательная, без нее пока можно обойтись, в ней просто коду товара поставлено в соответствие его название (товар это книги соответственно название товара есть название книги). Попробую еще раз уточнить проблему: структура таблицы CKLAD такая: Код: plaintext 1. 2. 3. 4. 5. структура таблицы CART такая: Код: plaintext 1. 2. 3. для того чтобы сделать выборку мне НАЗВАНИЕ не нужно, название будет нужно когда я буду выводить выбранный список на экран для пользователя, тогда и делается join CART on(Sklad.СART_CODE=CART.CODE), т.е. в результирующую таблицу добавляется названиме товара (для оператора). далее: пример записей таблицы SKLAD Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Алгоритм просматривается такой: 1. делаю выборку по складу А (все что на нем есть в количестве > 0), кажеться в IB это называется VIEWS Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. а дальше либо 2. делаю выборку по складу B (все что на нем есть в количестве > 0) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 3. исключаю из выборки B (Sklad2) все записи в которых встречается CART_CODE имеющийся в записях выборки A (Sklad3) просматривая для каждой записи из B список A, например так Код: plaintext 1. 2. 3. 4. 5. но это конечно будет долго и нудно :( либо 2. используя таблицу Sklad3 сразу формирую выборку Sklad2 с исключением записей в которых присутсвует CART_CODE имеющийся в записях Sklad3 организовав каконибудь хитрый SELECT. Собственно это я и спрашивал в самом начале. P.S. Испробовал вариант пердложеный самым первым Kadrwhere (sklad_code=A) and (kod_tovar not in (select kod_tovar .... where sklad_code=B)) Код: plaintext 1. 2. 3. 4. 5. 6. и раскритикованный Мимопроходящим, ну что-ж господин Мимопроходящий естественно прав, IB сервер загрузил систему на 99%, я честно ждал 15 минут, чайку попил, так и не дождался результата, пришлось прибить процесс. P.P.S. Что касается предложений FreemanZAV, то я немножко не понимаю логики запросов, в частности для варианта 2 получиться список товаров имеющихся на складах А и B, а нужно ведь не это, может надо FreemanZAVSELECT * FROM CART C WHERE EXISTS (SELECT 1 FROM TABLE1 B1 WHERE C.TOVAR_CODE=B1.TOVAR_CODE AND B1.SKLAD_CODE = 'A' AND B1.C_OSTAT > 0) AND NOT EXISTS (SELECT 1 FROM TABLE1 B2 WHERE B2.SKLAD_CODE = 'B' AND B2.C_OSTAT = 0 ) но так как в SQL я мягко говоря не силен, такая конструкция с точки зрения синтаксиса скорее всего не пройдет. Что касается алиасов, то я не знаю как их назначить (обьявить, прописать...), и что мне это даст. В общем такие вот грабли :( господа, надеюсь на толковый совет. С уважением Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:50:10 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Тебе нужен просто список товаров (как справочник) или записи из SKLAD? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:21:27 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Просто список товаров можно получить так. 1.Выборка из справочника: Код: plaintext 1. 2. Условие товара отсутсвующего на одном складе A (вообще обтсутвующего в принципе или имеющегося в количестве "0") интерпретируем так: Код: plaintext 1. 2. 3.Условие и имеющегося в количестве большем "0" на другом складе B интерпретируем так: Код: plaintext 4. Объединяем условия: Код: plaintext 1. 2. 3. 4. 5. Если этот запрос устраивает, то далее могу рассказать, как на его основе получить записи из Sklad ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:47:45 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
FreemanZAVТебе нужен просто список товаров (как справочник) или записи из SKLAD? Нужны записи из SKLAD, дополненные названием товара Код: plaintext Правильно ли я понял, что в конструкции Код: plaintext единичка 1 это Код: plaintext 1. 2. и еще вопрос, я использую компонет TpFIBDataSet, как мне в нем назначить alias? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 12:24:34 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Единицу в SELECT я пишу только для того, чтобы было меньще запросов к системным таблицам о структуре полей (в MS-SQL так было). Код: plaintext Если у тебя CART - справочник, то left делать не надо. А способ, который я показал основан именно на том, что в CART есть ВСЕ CART_CODE, которые присутствуют в Sklad. Not in, равно как и not Exists работают медленно из-за того, что в основном запросе (в данном случае Sklad) много записей, но если делать основную выборку из справочника, то скорость весьма приемлема (попробуй). Кстати вот еще вариант: Код: plaintext 1. 2. Но опять же если в CART есть ВСЕ CART_CODE, которые присутствуют в Sklad. В это случае убиваешь двух зайцев получешь выборку и наименование. Насчет alias непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 12:58:02 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
авторСобственно вопрос Dnico что мне делать с алиасами В1 и В2? если я напишу По поводу использования Алиасов таблиц: Это просо упрощает написание длинных запросов. Вот например : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:40:20 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
FreemanZAVЕсли у тебя CART - справочник 1. CART действительно справочник, и вней есть ВСЕ коды товаров, даже больше чем нужно (записи 2-х ... 3-х летней давности, для которых С_OSTATOK точно будет равен 0) 2. Все же нужны записи из CKLAD с количеством и ценой, а в картотеке только названия :( 3. Насчет алиасов, вы пишете Код: plaintext 1. 2. 3. Как я понял из разьяснений ... DnicoЭТо алиасы таблиц ... есть такая приблуда ... чтобы не указывать длинное название таблицы МимопроходящийПод B1 и B2 он понимает алиасы таблиц. В данном конкретном случае имеет место быть сомообъединение таблицы. Т.е. соединение с самой собой. ... ваше S и есть алиас таблицы CART и в этой же строке для таблицы Sklad (почему один символ для разных таблиц? это описка? раньше вы писали S1, S2 и S3) так вот мне и непонятно с точки зрения синтаксиса команды SELECT, что просто через пробел после имени таблицы пишется ее алиас (псевдоним) и потом им можно пользоваться в качестве имени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:55:36 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Пока писал вопрос, на него уже ответили Dnico - I thank you very much! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:00:51 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
S и есть алиас таблицы CART Ошибся, надо C так вот мне и непонятно с точки зрения синтаксиса команды SELECT, что просто через пробел после имени таблицы пишется ее алиас (псевдоним) и потом им можно пользоваться в качестве имени? Точно. Можно еще и так Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:01:26 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Вот так вот, как раз и низзззя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:10:49 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Извиняйте, это только для полей: Код: plaintext С туевой хучей СУБД приходиться иметь дело, путается, что и где. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:14:50 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Извиняюсь за назойливость, но я Вас ловлю на слове FreemanZAVдалее могу рассказать, как на его основе получить записи из Sklad Все таки списка маловато, все же нужны записи из CKLAD с количеством и ценой, а в картотеке только названия :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 14:49:05 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
А вариант с LEFT JOIN не устраивает? Кстати можно на ты, я не такой-уж старый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 15:03:25 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
FreemanZAVА вариант с LEFT JOIN не устраивает? в смысле к записям из картотеки подключать записи из соответствующего склада? Надо попробывать. Это так? Код: plaintext 1. 2. Но тут может возникнуть одна проблемка, на даном складе модет быть несколько записей с одним и тем-же CART_CODE но с разными ценами, так уж исторически сложилось, что таблица CKLAD первична а картотека вторична. P.S. Насчет ТЫ или ВЫ пожалуйста, просто человека не видно, кто то обижается на фамильярность, кто то нет, я лично не обижаюсь, хоть чайником назови, главное найти ответ на вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 15:37:04 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Все, на сегодня INET кончается, попаду сюда только завтра утром :( может к завтрашнему утру тут почвиться чтонибудь новенькое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 15:41:30 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Решение предложеное FreemanZAV Код: plaintext 1. 2. 3. 4. 5. работает, и даже вполне быстро, но УВЫ, нет информации о номере склада и количестве товара, а пользователю для анализа нужно как раз видеть количество товара и его цены на "большем" складе (условно считаем склад на котором данного товара нет "меньшим" а на котором есть "большим") Попытка получить информацию из таблицы Sklad модифицировав предыдущее: Код: plaintext 1. 2. 3. ничего не дала :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 09:35:24 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Ага. C left join фигня получается. Запарил блин. Вот тебе запрос, как обещал (только последний Exists я заменил на INNER JOIN): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. У меня на 400000 записей работало довольно быстро. Но конечно должны быть соотв. индексы. Если будут тормоза, то попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Или так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 10:05:39 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Наверное и так можно (проверь, мне некогда): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 10:18:46 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Еще раз спасибо, к сожалению проверить смогу только вечером (там где есть Internet нет возможности работать с программой, а где есть возможность работать с программой нет интернета ) Сразу же задам вопрос, может наивный... Чтобы в выборке иметь поля из таблицы Sklad достаточно ли модифицировать Select: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 10:28:27 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Достаточно. Только синтаксис проверь. И почитай книги по SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 10:37:56 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
FreemanZAVИ почитай книги по SQL. Книги это хорошо, только для начала надо учебник и желательно бы в электронном виде, может подскажешь пару ссылочек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 12:29:42 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
ibphoenix.com ibase.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:01:25 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Спасибо! нашел прямо на этом сайте в разделе "Документы" Мартина Грабера "Понимание SQL" (Understanding SQL). Отличная книга! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:22:32 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Только перевод корявый и книга древняя. Про JOIN там ни слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:27:42 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
to SSB777 Да сходи ты в магазин и купи любую книгу по SQL (200р. стоит нормальная книга) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2004, 14:57:51 |
|
||
|
Как сделать выборку из таблицы?
|
|||
|---|---|---|---|
|
#18+
Еще раз спасибо всем откликнувшимя , даже тем кто не поделу. Вариант 1 из ответа 653523 ( FreemanZAV ) на первый взгляд отлично работает (точно можно будет сказать через пару месяцев, когда пользователи поработают), так что, в общем, тему можно считать исчерпаной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2004, 09:06:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1578731]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 499ms |

| 0 / 0 |
