Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:07 28.06.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Тема събирам предложения за оптимизациянови  
Автор Topбaлaн (любопитко)
Публикувано07.01.03 11:29



strSql = "SELECT алабала, " +
____"(SELECT име + ' ' + фамилия FROM owners WHERE owner = owner_id) AS собственик, " +
____"(SELECT име + ' ' + фамилия FROM owners WHERE technical = owner_id) AS поддръжка, " +
____"FROM [една таблица] CROSS JOIN owners";

този SQL стринг работи, посъкратил съм го малко и съм сложил подчертавки за да е малко по прегледно...

имам две таблици - в едната се пазят данни и вместо имената на хората се пишат някакви ИД-та, в другата има същите ИДта и съответните имена...

въпроса име е следния:

има ли по принцип друг начин да се реализира такава заявка, която връща
алабала, собственик, поддръжка

ако има - как? кой начин е най бърз?



Тема Re: събирам предложения за оптимизациянови [re: Topбaлaн]  
Автор phpGuruАдминистратор (непознат)
Публикувано07.01.03 12:40



select X.алабала, (O1.име + ' ' + O1.фамилия) AS собственик, (O2.име + ' ' + O2.фамилия) AS поддръжка FROM таблица AS X, owners AS O1, owners AS O2 WHERE O1.owner = X.owner_id AND O2.technical = X.owner_id

ако съм разбрал правилно и при положение, че винаги имаш собственик и поддръжка ( ако немаш тогава с лефт джойни )

и малко странна ми се струва, че трябва да е структурата на базата - owners по-специално (или явно не съм схванал ква е идеата)



Тема Re: събирам предложения за оптимизациянови [re: Topбaлaн]  
Автор salle (непознат)
Публикувано09.01.03 14:08



CROSS JOIN ???????????

А стига бе. А за какво ти е това Декартово произведение?

Нааааай-простичкия пример за CROSS JOIN е:

SELECT * FORM a,b;

в 99.999999999999% от случаите това ама изобщо не ти трябва


WHERE owner = owner_id ?????


Да не би да ти се мотае в главата нещо от рода на:

SELECT .... FROM owners AS owner, owners AS support WHERE owner.owner_id = support.owner_id ...;

А?
Що за таблица е това?



Тема Re: събирам предложения за оптимизациянови [re: salle]  
Автор Topбaлaн (любопитко)
Публикувано10.01.03 08:49



ами какво ми се мотае в главата
имам две таблици (имената и полетата не съм ги мислил аз) в едната се пишат цифрички в няколко колони (и други данни разбира се)
в другата срещу всяка цифричка стоят данни за хора - имена, телефони и др. подобни...
та вместо да излиза

алабала 1 2

искам да е

алабала Димитър Стефанов Камен Зидаров

надявам се, тоз път да съм го обяснил ясно?

CROSS JOIN-ът идва от куири билдера естествено....



Тема Re: събирам предложения за оптимизациянови [re: Topбaлaн]  
Автор NDeu (минаващ)
Публикувано10.01.03 16:03



По същество phpGuru (непознат) 07.01.03 12:40 ти е отговорил.

Бих добавил една малка корекция, в случай, че структурата ти е такава, както на мен ми се струва

select X.алабала, (O1.име + ' ' + O1.фамилия) AS собственик, (O2.име + ' ' + O2.фамилия) AS поддръжка FROM таблица AS X, owners AS O1, owners AS O2 WHERE O1.Id= X.owner_id AND O2.Id = X.technical




Тема Re: събирам предложения за оптимизациянови [re: NDeu]  
Автор бaй Любo (#!/usr/bin/ksh)
Публикувано10.01.03 17:14



И аз като чета ми се струва че таблица има две колони, които сочат към два (потенциално различни) реда в оунер.

В такъв случай горното решение (на ндеу) е правилно -- оунерс трябва да участва два пъти в заявката щото за всеки ред от таблица турсиш два реда от оунер по различни джоин условия.

По въпроса за оптимизацията -- плесни един индекс в/у оунер.ид и това е. След като нямаш никакъв филтър в/у таблица, тя така и така ще се чете с тейбл скан.



Тема Re: събирам предложения за оптимизация [re: бaй Любo]  
Автор Topбaлaн (любопитко)
Публикувано10.01.03 20:46



индекси има...



Тема Re: Недей така бе Торбалане!!нови [re: Topбaлaн]  
Автор salle (непознат)
Публикувано10.01.03 23:20



Стига си ни мъчил да гадаем какви са ти таблиците и какво искаш.

Разкажи с думи прости:

Имам таквази таблица с колонки: Име, Фамилия, Нещоси друго
и таблица с колонки Такова, Такова и Такова

И искам начи да ми дойде тука Торбалан в един чувал ...
.... чакай бе ... не .. това беше от приказката.

Та кажи:
Искам те тука да ми дойде една таблица в която

Срещу всяко име да има Такова и Таквизи според Онова Ей нам.



Така де ...
Дай примерчета




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.