|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Объясните пожалуйста новичку, который только начал программировать. functions и allfunctions. Как выбрать из таблицы functions все записи, которых нету в allfunctions в третью таблицу? поля name и type в обеих таблицах есть и можно наверное использовть как связь ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 09:42 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Зеленьfunctions и allfunctions. Как выбрать из таблицы functions все записи, которых нету в allfunctions в третью таблицу? Как из пустоты выбрать что-то? Не пробовали обдумать свой вопрос? Или переформулировать? Например, так: как из allfunctions выбрать всё то, чего нет в functions? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:03 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Зелень, SELECT * FROM A WHERE Key NOT IN (SELECT Key FROM B) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:36 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
А где я написал что таблица functions пустая? Она не пустая и может содержать записи, которых нет в allfunctions. Мне нужно найти такие записи в таблице functions, которых нету в allfunctions и занести эти записи в другую таблицу скажем testfunc. Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:37 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Зелень, недавно попалось объявление: требуется программист, хорошо владеющий русским языком. А ещё сетования преподавателя математики, какой нынче студент пошёл: он всё понимает, но выразить не может. Читайте классику, не смотрите киношку! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:41 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Зелень, если фильтр исключения записей должен состоять из двух полей, придётся их свернуть в одно значение, типа: SELECT * FROM A WHERE STR (Key1,10)+STR(Key2,10) NOT IN (SELECT STR(Key1,10)+STR(Key2,10) FROM B) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:53 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Зелень, или, если покажется удобнее, SELECT * FROM A WHERE Key1 NOT IN (SELECT Key1 FROM B) AND Key2 NOT IN (SELECT Key2 FROM B) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 11:10 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Rostislav D. Kudryashov, а ведь это не годится. Если и в таблице A, и в таблице B значения Key1, Key2 могут быть 0 и 1, то пропуская (фильтруя) в выборку записи с Key1 и Key2 , каких нет в таблице B, мы получим пустую выборку. А ведь цель фильтра выбрать из A записи с такими комбинациями Key1, Key2, которых нет в B. Например, в таблице A есть комбинации 0,0, а в таблице B - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 11:27 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
давайте я вам заново скажу что есть в таблицах. есть первая таблица где очень много записей она каждый месяц обновляется. есть вторая таблица нужная для моей программы. в обеих таблицах есть поля name и type, по которым их можно связать. теперь мне нужно из первой таблицы выбрать такие записи по полям name и type, которых нет во второй таблице и занести их во вторую таблицу. вроде простым языком как мог объяснил что мне нужно. как мне это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 11:39 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Зеленьдавайте я вам заново скажу что есть в таблицах. есть первая таблица где очень много записей она каждый месяц обновляется. есть вторая таблица нужная для моей программы. в обеих таблицах есть поля name и type, по которым их можно связать. теперь мне нужно из первой таблицы выбрать такие записи по полям name и type, которых нет во второй таблице и занести их во вторую таблицу. вроде простым языком как мог объяснил что мне нужно. как мне это сделать?В таких случаях надо не только простым языком рассказывать, но и на примере данных показывать. Иначе идет обсуждение сферического коня, а не конкретной проблемы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 11:50 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Sergey Sizov,Sergey Sizovselect * from t1 left join t2 on t1._name = t2._name and t1._type = t2._type WHERE t2._name is null это гораздо лучше моего сворачивания через STR(). Правильно ли я понял, что 1) если условие связи t1 и t2 для какой-то записи t1 не выполняется хоть по одному из двух полей, то в соединении (JOIN) для этой записи t1 все поля из t2 будут представлены значениями null ??? Так что проверки на null обоих полей связи не требуется? И 2) может, ближе к постановке задачи будет SELECT t1.* ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 12:40 |
|
Выбрать записи, которых нет в таблице
|
|||
---|---|---|---|
#18+
Rostislav D. KudryashovSergey Sizov,Sergey Sizovselect * from t1 left join t2 on t1._name = t2._name and t1._type = t2._type WHERE t2._name is null это гораздо лучше моего сворачивания через STR(). Правильно ли я понял, что 1) если условие связи t1 и t2 для какой-то записи t1 не выполняется хоть по одному из двух полей, то в соединении (JOIN) для этой записи t1 все поля из t2 будут представлены значениями null ???А что, Вы можете предложить какие-то еще варианты? Так что проверки на null обоих полей связи не требуется?После слова ON пишется логическое выражение. ОДНО! И оно действует на запись, а не на отдельные поля. И 2) может, ближе к постановке задачи будет SELECT t1.* ???Что тут ближе к постановке задачи лучше знает топикстартер, а я всего лишь пытаюсь отгадать, что ему надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 12:52 |
|
|
start [/forum/topic.php?fid=41&msg=38765751&tid=1582526]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 496ms |
0 / 0 |