
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.04.2012, 16:44
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
подскажите может кто сталкивался есть две таблицы таблица1 ПОЛЕ1:Текстовое значение ПОЛЕ2:Численное значение Таблица2 ПОЛЕ1:Текстовое значение ПОЛЕ2:Численное значение Примерно выглядит так ТАБЛИЦА 1 ТАБЛИЦА 2 ПОЛЕ1 ПОЛЕ2 ПОЛЕ1 ПОЛЕ2 запись1 4 запись5 4 запись2 4 запись6 7 запись3 5 запись8 19 как должен выглядеть SQL запрос чтоб получилось так РЕЗУЛЬТАТ ЗАПРОСА ПОЛЕ1.ТАБЛИЦА1 ПОЛЕ1.ТАБЛИЦА2 запись1 запись5 запись2 т.е. вывести в результирующую таблицу записи, ПОЛЕ2 для которых имеет одинаковое значение (в примере=4) пробовал left join и т.д. не проходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2012, 18:48
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
Подобная операция может иметь смысл в табличном процессоре, но совершенно бессмысленна в SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2012, 19:04
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
Tromani, INNER JOIN по полу2, дале нумеровать поле1, в разрезе поле1, все что больше 1 - выводить пусто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.04.2012, 22:41
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
Akina, угу select distinct "Ишак" as Выкина from Zukina ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 08:54
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
kDnZP, Вы имеете ввиду дополнительную обработку уже программными средствами? Это то понятно что можно... я думал может я чего не знаю про SQL и он таки может содержит подобную конструкцию с помощью поторой можно было б сразу вывести, как программно сделать это я знаю больше чем один наверно способ, интересует именно SQL запрос который как бы это сказал просто приставлял друг к другу колонки с разных табличек если эти колонки имеют общий признак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 09:16
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
Tromani, я вам описал логику запроса для ваших данных. Это словестное описание запроса вернет именно то, что вы ожидаете. Но не факт, что правильно, т.к. вы явно не представляете поведение на бОльших объемах данных в случае дублирования строк (или как минимум повторения поле2 более чем 3 раз в разных таблицах). SQL-запрос я ессно написать могу, но не буду, пока не увижу, что вы хоть чуть-чуть напряглись, подумали, а также предоставили свои наработки, пусть даже неправильные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 10:03
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
kDnZPTromani, SQL-запрос я ессно написать могу, но не буду, пока не увижу, что вы хоть чуть-чуть напряглись, подумали, а также предоставили свои наработки, пусть даже неправильные. ЕЩЕ один умник! поверь дружище я перелопатил кучу вариантов. Объясню попроще чтоб понятнее было. 1Вариант как я бы это решил: Допустим в делфи я бы взял StringGrid1 и в 1ю колонку вывел бы результат SELECT ПОЛЕ1... FROM ТАБЛИЦА1... where ПОЛЕ2=4, во вторую колонку STRINGGrida вывел бы SELECT ПОЛЕ1... FROM ТАБЛИЦА2... where ПОЛЕ2=4, если б строк не хватало добавил бы просто - в какой табличке больше б записей было б такой высоты б и был бы StringGrid. и имел бы решение. ЧТОБ вам проще было б самому решить упростим (или усложним) задачу добавте ,ТАБЛИЦУ 3 которая будет иметь поле ID (уникальное) на которое и ссылаются ПОЛЯ2 в ТАБЛИЦЕ1 и 2. и вот вам реляционность ТАБЛИЦА1 реляционна по отношению к ТАБЛИЦЕ3, ТАБЛИЦА2 реляционна к ТАБЛИЦЕ3. только ТАБЛИЦА2 никак не реляционна к ТАБЛИЦЕ1 именно ввиду такого взаимоотношения таблиц я и пытаюсь решить задачу методами SQL и потому и предположил что SQL должно содержать конструкцию выполняющую такой запрос, когда две или более таблиц реляционны к третьей но нереляционны между собой. НО как я понял толи SQL не предполагает такого объединения толи я не знаю такой конструкции которая это может описать я на форум обратился только потому что перелопатил все что мог придумать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 10:25
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
TRomanI, да не растраивайтесь вы так. Ну есть проблемы с пониманием, а также осознанием. Хоть это и не оправдывает отсутствие знаний... Но для начала хотя бы потрудились сказать, что за сервак имеете. Да и вообще, интересно, чего именно в эту ветку обратились? Со специализированной наверно вас уже выгнали? Еще раз: Вы просто не понимаете чего хотите. Решение для вашего набора данных делается элементарно, но оно скорее всего ошибочно. Стринггриды, делфи... Блин... Пичалька(((. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 10:48
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
kDnZP, Печально наверно мыслить заданными рамками, не выходя за пределы ограниченные стандартными наборами функций))) в гугле набрал "форум по SQL" туда и попал. видимо зря. я не расстраиваюсь никак и никогда. и уж тем более в общении с вами. что касается делфи и стринггридов, то это был пример для решения в клиентском приложении, я не спорю что можно было используя сервер ДБ который предполагает наличие хранимых процедур и широкие возможности обработки сделать так как вы сказали начально, это и понятно. Вопрос еще раз состоит в другом и, видимо точно не к вам, kDnZP, можно ли в рамках 1 простой конструкции SELECT...FROM объеденить следущие таблицы ТАБЛИЦА1 ПОЛЕ1: ID ТАБЛИЦА_2 ПОЛЕ1: ЗНАЧ_Т2 ПОЛЕ2: LINK_ID ТАБЛИЦА_3 ПОЛЕ1: ЗНАЧ_Т3 ПОЛЕ2: LINK_ID .... ТАБЛИЦА_N ПОЛЕ1: ЗНАЧ_ТN ПОЛЕ2: LINK_ID чтоб в итоге иметь например ID|Знач_Т2|Знач_Т3|...|Знач_ТN| 1 |Т2_запись1|Т3_запись1|TN_записи 1 |T2_запись2| 1 |T2_запись3| т.е. во второй колонке все записи из таблицы2 по значению id=link_id в третьей все записи из таблицы3 по значению id=link_id в n колонке все записи из таблицы_N по значению id=link_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 10:48
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
kDnZP, эх, предчувствуя новый этап истерики... Вот решение для MS SQL Server >=2005: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Результат: t1ПОЛЕ1t2ПОЛЕ1запись1запись5запись2 Если вам от этого станет легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 10:52
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
TromanIВопрос еще раз состоит в другом и, видимо точно не к вам, kDnZP Да фигня вопрос. Пусть другие помогают, в этой теме больше не будет моих сообщений, если вдруг надумаете что вам надо, приходите в bid=1 . Только изначально ознакомтесь там с темой о правильно задаваемых вопросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 11:21
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
kDnZP, спасибо конечно! я расчитывал что это можно сделать стандартными наборами BDE там не настолько сложное и большое приложение чтоб заморачиваться с MS SQL))) типа FROM T1.ID LEFT JOIN T2.POLE1 on (t2.LINK_ID=T1.ID) LEFT JOIN T3.POLE1 ON (T3.LINK_ID=T1.ID) я то понимаю почему оно именно в таком виде не работает так как мне хочется, думал что есть или кто знает как указать что тут главной остаеться именно таблица T1, но для T3 главным есть предыдущее объединение T1 c T2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 12:09
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
Tromaniкак должен выглядеть SQL запрос чтоб получилось так РЕЗУЛЬТАТ ЗАПРОСА ПОЛЕ1.ТАБЛИЦА1 ПОЛЕ1.ТАБЛИЦА2 запись1 запись5 запись2 т.е. вывести в результирующую таблицу записи, ПОЛЕ2 для которых имеет одинаковое значение (в примере=4) пробовал left join и т.д. не проходит SQL - логичен. Попробуйте вменяемо обосновать, почему результат выглядит именно так, а не РЕЗУЛЬТАТ ЗАПРОСА ПОЛЕ1.ТАБЛИЦА1 ПОЛЕ1.ТАБЛИЦА2 запись2 запись5 запись1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 12:26
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
Akina, да и если включить логику то потому что запись1 первая по порядку пример таблица names поле:name таблица 1 содержит записи Валя Катя Света Select name from names даст результат Валя Катя Света в том порядке в котором оно физически записано в БД вменяемо обосновал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 14:52
|
|||
|---|---|---|---|
как правильно объеденить таблицы? |
|||
|
#18+
Tromaniпотому что запись1 первая по порядку [skipped] в том порядке в котором оно физически записано в БД вменяемо обосновал? Нет. Это в файловых БД есть понятия порядка записей, "оно физически записано в БД". В реляционных БД до тех пор, пока не задана сортировка, порядок записей НЕ ОПРЕДЕЛЁН. Или даже жёстче - такого понятия без указания сортировки НЕ СУЩЕСТВУЕТ. В частности, это означает, что при двух последовательных запросах SELECT fields FROM tableset записи в наборах данных имеют полное право идти в РАЗНОМ порядке. И то, что некоторые СУБД отдают записи в порядке возрастания первичного ключа или расширяют группировку на сортировку - не более чем СУБД-зависимая фича. Так что твоё "первая по порядку" - это ерунда, от вменяемости крайне далёкая. Учите матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 16:20
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
Akina, да мне честно до одного места в каком бы порядке они не шли. вроде вопрос, порядка сортировки не касался, тут по ходу не форум на котором можно вопрос задать и решить его, а эдакое сообщество люди из которого пытаются доказать что они умнее других чтоли, наверно только самим себе, я рад вашим познаниям, однако, по моему мнению вы даже сути вопроса не поняли. если всетаки вас волнует вопрос сортировки то меня б устроил и тот который бы выдался при простом обращении к таблице1. "SELECT fields FROM tableset записи в наборах данных имеют полное право идти в РАЗНОМ порядке." да с чего бы это? чет не разу такого не замечал чтоб при двух выполнениях одного и тогоже запроса записи шли в разном порядке)) ладно сдесь по ходу мне все сказали что хотели, адиос амигос для меня не сложно будет сделать это в приложении быстрее и проще чем париться на форуме доказывая непонятно что непонятно кому, короче попусту время потратил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.04.2012, 16:24
|
|||
|---|---|---|---|
|
|||
как правильно объеденить таблицы? |
|||
|
#18+
Akina Так что твоё "первая по порядку" - это ерунда, от вменяемости крайне далёкая. Учите матчасть. Первая по порядку который бы выдал простой запрос SELECT Поле1 From Таблица1 порядок результата такого запроса будет всегда одинаков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&tablet=1&tid=1342289]: |
0ms |
get settings: |
5ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 487ms |

| 0 / 0 |
