|
|
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Вопрос такой. Есть 2 таблицы - t1 (n,td,fd,val) И t2 (up,td,fd,typ,n) связь таблицы происходит по up из t2 с n из t1. 1)нужно в таблице t1 к val прибавить 15, если в t2 есть соответствующая запись. 2)Найти в таблице t2 такие запись, которая ссылается на несуществующую запись в таблице t1. Если кто сталкивался помогите плз. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 10:33:05 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
курите маны по left join - для обеих задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 10:52:36 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akinaкурите маны по left join - для обеих задач. ty ochen polezno i ponytno dly 2 kursa texnikuma. 66 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 10:57:50 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
вопрос еще актуален ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:06:47 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/139276/rekomendacii-po-publikacii-soobshheniy-chitayte-faq-a-takzhe Для студентов и школьников (с) Shocker.Pro В решении Ваших вопросов зачастую есть два пути, которыми можно пойти. Выберите один из них: #19. Путь 1. "Я не знаю, не умею и знать и уметь не хочу". В этом случае не пишите "прошу помочь сделать задание". Ведь это не соответствует действительности. Помощь подразумевает то, что человек что-то делает, у него что-то не выходит, возможно, ему нужна просто подсказка. Пишите прямо: "сделайте задание за меня", а также озвучьте, как бы вы отблагодарили того, кто это сделает. Тогда всем будет понятно, никто не будет пытаться без пользы давать подсказки, ссылки и т.п. Просто найдется тот, кто сделает. Или не найдется. #20. Путь 2. "Я хочу разобраться и сделать это задание, и мне нужна помощь". Этот подход подразумевает, что помимо условия задачи будут опубликованы реальные попытки автора что-то сделать, конкретные вопросы, по коду, функциям, алгоритмам, а также прочитан материал, который дал преподаватель, и/или изучены основы языка, которые даются на первых страницах любого учебника. А на ответы "вам поможет функция Split" вы не будете немедленно задавать вопрос "а что это такое?", а сначала почитаете Help по данной функции или материалы по ее использованию, во множестве доступные в Интернете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:26:38 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akina, Путь 2. я же тоже пытался что сделать вот мои примеры 2)select * from t1 left join t2 on t1.n= t2.up where t1.n is null говорит что не верно 1) update t1 set val= val+15 where t1.fd= t2.fd and t1.n=t2.n; сказали что тоже не верно Вы думайте я прошу сделать за меня задания ? Я потратил на такие легкие запросы больше 3 часов, чтобы потом препод мне сказал ты сделал не верно. Я решил спросить у людей для которых это семечки. А вы мне тут иди учи иди читай. У вас займет 2 минуты у меня целый день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:34:43 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
theqwerty, конечно "не верно". И правильно вас Акина послал маны курить запивая учебником... или вы думаете, что тут каждому неучу "просто так" помогают "из любви к исскуству"? решение 1: неверно, потому как Вы не поняли задачу. В целом текстовка верна, но условие надо прописать ПРАВИЛЬНО, согласно задаче. решение2: и? Вы синтаксис update, перед тем как писать - смотрели? Секция FROM у вас хде?!? или вы считаете, что мускуль сам должен догадаться ОТКУДА взять и КУДА сложить результат? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:42:21 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
theqwertyя же тоже пытался что сделать вот мои примерыТак с этого и надо было начать! theqwerty2)select * from t1 left join t2 on t1.n= t2.up where t1.n is null говорит что не верно Конечно... При left join на левой стороне НЕ МОЖЕТ быть null - только на правой, т.е. только у таблицы t2. Значит, либо поменять их местами (t2 left join t1), либо сменить левое связывание на правое (t1 right join t2). Остальное верно. theqwerty1) update t1 set val= val+15 where t1.fd= t2.fd and t1.n=t2.n; сказали что тоже не верно Конечно... обновлению подлежит не одна таблица, а совокупность из двух таблиц. Посему, во-первых, update t1, t2 set ..., во-вторых, раз таблиц более чем одна, то указывать для каждого поля. из какой таблицы оно взято. theqwertyА вы мне тут иди учи иди читай. Ответа достоин лишь тот, кто делает. Ты не показал, что делаешь - был послан читать. Показал, что делаешь - получил помощь. По-моему, так - правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:43:39 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akina, о, кстати, просмотрел. Во втором примере t1 таки указана. Стало быть верно, нужно явное указание где и чего меняем... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:46:57 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akina,я тут 1 час и правила форума не читал ) что примеры свои нужно показывать ) вдруг еще ржать будут :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:48:37 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Arhat109,Найти в таблице t2 такие запись, которая ссылается на несуществующую запись в таблице t1. select * from t2 left join t1 on t1.n= t2.up where t1.n is null Работает mission complete :D спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:52:40 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
theqwerty, Осталось понять как сделать 1 задание ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 11:53:41 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Сравни: theqwertyсвязь таблицы происходит по up из t2 с n из t1 theqwertywhere t1.fd= t2.fd and t1.n=t2.n ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:09:33 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
theqwertyвдруг еще ржать будут :DТебе сделать или чтобы не ржали? theqwertyправила форума не читалА вот за это надо было бы тебе выписать по первое число... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:11:51 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akina,) я просто не могу понять условие. И что значит соответствующая запись? Абсолютно такая же? А каким образом, если поля разные? В t1 - 4 поля, в t2 - 5 полей. Как они могут быть одинаковые, учитывая, что поля ещё и разные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:16:04 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
AkinaСравни: theqwertyсвязь таблицы происходит по up из t2 с n из t1 theqwertywhere t1.fd= t2.fd and t1.n=t2.n update t1 set t1.val = t1.val+15 where n in (select t2.n from t1, t2 where t1.fd = t2.fd and t1.n = t2.n) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:16:29 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Скажи, почему при решении второго примера ты использовал Код: sql 1. а для первого упорно пихаешь Код: sql 1. При том, что условие-то вроде как одно... Для меня это - загадка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:19:42 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akina,потому что я думаю надо проверять по всем одинаковым полям :D из 2 таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:24:45 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Всем спасибо ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 12:37:09 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
Akina, Препод издивается надо мной помогите решить задание :( T1 t2 N up Td Td Fd Fd Val n Две таблицы связь t2.up --> t1.n 1)В таблице т1 к val прибавить 15, если в т2 есть соответствующая запись. update t1 set t1.val = t1.val+15 where n in (select t2.n from t1, t2 where t1.fd = t2.fd and t1.n = t2.n) Неправильно, посмотри еще раз повнимательнее, по какому условию связываются таблицы. 2) В таблице т1 к val прибавить 15, если в т2 есть соответствующая запись. Но только для живых записей. update t1 set t1.val = t1.val+15 where n in (select t2.n from t1, t2 where t1.fd = t2.fd and t1.n = t2.n)and sysdate between fd and td То же замечание, что и в предыдущем задании, плюс необходимо учесть только живые не только в таблице t1, но и в t2. 3) Удалить из Таблицы t1 сдвоенные записи. Сдвоенность проверять по n,fd,val. delete t1 where rowid not in (select max(rowed) from t1 group by n,fd,val); Почти правильно, то такой оператор работать не будет. 4) Найти в таблице т2 такие записи, которые ссылаются на несуществующую запись в таблице t1. 4)select * from t2 left join t1 on t1.n= t2.up where t1.n is null Не совсем правильно, надо выводить только поля из таблицы t2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 10:57:20 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
1) Код: sql 1. 2. 2) то же + "and sysdate between fd and td" и в экзисте, и снаружи 3) ну, формально он прав (хотя в мускле работать оно таки будет - но только в нём); впрочем, добавить в подселект недостающие поля и переписать "нот ин" на "лефт джойн + ис нулл" вы уже должны уметь 4) ну так выводите - кто вас заставляет именно звёздочку туда писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 11:19:41 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
tanglir , замена where in на where exists не изменит неправильности подхода к решению. ТС просто "смотрит в книгу, ...", к тому же он очень упорный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 11:24:48 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
tanglir, Я могу и так написать update t1 set val = val+15 where n in (select t2.n from t1, t2 where t1.fd = t2.fd and t1.n = t2.n and sysdate between t1.fd and t1.td and sysdate between t2.fd and t2.td) and sysdate between fd and td Только вот он опять говорит что не верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 11:40:42 |
|
||
|
Прибавление значения если есть соответствующие записи в другой таблице.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2013, 11:42:58 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=208&tid=1836062]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 343ms |

| 0 / 0 |
