Сохранен 166
https://2ch.su/b/res/99857425.html
Добавлена поддержка ЭЧ/Ech (ex-Escapechan) и Ежчана (ejchan.net, ejchan.site). Набегаем, тестируем архивацию, сообщаем о замеченных проблемах.
К сожалению, значительная часть сохранённых до 2024 г. изображений и видео была потеряна (подробности случившегося). Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним 15/08/15 Суб 09:37:23 #1 №99857425 
14396206437900.png
14396206437911.png
Привет, /b. Есть тут эксперты по SQL?
Помогите составить запрос, всю голову уже сломал.
Допустим есть такая таблица, второй пикрилейтед, нужно выбрать все IDKEK, где IDMEMAS 1 и 2. В нашем случае это будут Кеки 1 и 4.
Как написать такой запрос?
пишу что-то вроде

[CODE]select idkek from mimas_table where idmemas in (1, 2) group by idkek[/CODE]

Но это не то. Анон, помоги понять, как правильно нужно это делать. Не самый удачный пример табилцы сделал, но уж что есть.
Аноним 15/08/15 Суб 09:37:47 #2 №99857441 
бамп
Аноним 15/08/15 Суб 09:38:10 #3 №99857453 
bump
Аноним 15/08/15 Суб 09:38:42 #4 №99857469 
14396207226340.png
bump
Аноним 15/08/15 Суб 09:39:16 #5 №99857495 
бринк уп ми посте
Аноним 15/08/15 Суб 09:40:06 #6 №99857524 
А что с твоим запросом?
Аноним 15/08/15 Суб 09:40:11 #7 №99857526 
14396208118340.jpg
Аноним 15/08/15 Суб 09:41:42 #8 №99857571 
>>99857524
Ну он, ясное дело, еще и лишнее выдает. Надо получить только 1 и 4.
Аноним 15/08/15 Суб 09:44:01 #9 №99857650 
>>99857425 (OP)
SELECT FROM Customers
WHERE Country='Mexico';

select
from idkek where idmemas in (1,2)
Аноним 15/08/15 Суб 09:44:09 #10 №99857654 
Попробуй INSTINCT прописать в селекте перед названием столбца
Аноним 15/08/15 Суб 09:45:15 #11 №99857686 
14396211155360.jpg
>>99857654
DISTINCT*
Аноним 15/08/15 Суб 09:46:21 #12 №99857721 
14396211813360.png
14396211813361.png
>>99857650
Это что за бред?
>>99857686
Ок, ща попробую.

Вообще, чтобы понятно было, как оно неправильно работает - вот.
Аноним 15/08/15 Суб 09:48:15 #13 №99857772 
>>99857650
>select from idkek where idmemas in (1,2)
Аноним 15/08/15 Суб 09:48:20 #14 №99857775 
Навикат поставь ичерез конструктор зар просов ебаш. SELECT kekas FROM kekas_table WHERE id= 1 OR id = 2
Аноним 15/08/15 Суб 09:48:51 #15 №99857791 
>>99857686
Погоди, хотя причем здесь дистинкт? Он же вроде не дает повторяться значениям? Мне же нужно выбрать все Кеки, у которых Мемасы равны 1 и 2.
Аноним 15/08/15 Суб 09:48:55 #16 №99857795 
>>99857721
он у тебя всё правильно выбирает, в чём проблема то?
Аноним 15/08/15 Суб 09:48:56 #17 №99857796 
>>99857721
Если хочешь чтобы оба были ит1 и 2, тогда исрользуй AND
Аноним 15/08/15 Суб 09:49:27 #18 №99857810 
>>99857775
Етот прав. Нужен ор.
Аноним 15/08/15 Суб 09:50:28 #19 №99857835 
>>99857796
Ага и получу НУЛ вообще.
>>99857795 >>99857775
Неправильно, так выдаст еще и лишних.
Аноним 15/08/15 Суб 09:50:47 #20 №99857845 
>>99857425 (OP)
Ты втираешь нам какую-то дичь
Попробуй:
select idkek from idkek in (select idkek from mimas_table where idmemas = 1) AND idmemas=2
Аноним 15/08/15 Суб 09:51:19 #21 №99857862 
>>99857845
ой стоп, не то удалил
Аноним 15/08/15 Суб 09:52:04 #22 №99857895 
>>99857835
да
дай мне create схемы, лень вручную писать
Аноним 15/08/15 Суб 09:52:13 #23 №99857904 
>>99857845
select idkek from mimas_table
WHERE idkek in (select idkek from mimas_table where idmemas = 1) AND idmemas=2
Аноним 15/08/15 Суб 09:52:17 #24 №99857906 
>>99857835
Убери груп бай нахуй
Аноним 15/08/15 Суб 09:52:53 #25 №99857920 
Задача на самом деле не такая простая как кажется на первый взгляд
>>99857895

CREATE TABLE MIMAS_TABLE (
IDKEK INTEGER,
IDMEMAS INTEGER
);
Аноним 15/08/15 Суб 09:53:27 #26 №99857938 
>>99857920
с содержимым естественно
залача оче простая
Аноним 15/08/15 Суб 09:53:47 #27 №99857949 
>кеки
Аноним 15/08/15 Суб 09:54:08 #28 №99857962 
>>99857938
5 сек, вспомню, как тут это делать
Аноним 15/08/15 Суб 09:55:31 #29 №99858002 
>>99857938

INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (1, 1);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (1, 2);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (2, 1);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (2, 3);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (3, 3);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (4, 1);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (5, 2);
INSERT INTO MIMAS_TABLE (IDKEK, IDMEMAS)
VALUES (4, 2);

COMMIT WORK;
Аноним 15/08/15 Суб 09:55:33 #30 №99858004 
Where idkek < 3
Аноним 15/08/15 Суб 09:57:04 #31 №99858046 
Повторяю еще раз нужны Кеки, у которых есть и Мемас 1 и Мемас 2.
То есть запрос должен вернуть Кеки: 1 и 4
Аноним 15/08/15 Суб 09:57:35 #32 №99858064 
>>99858046 >>99857904

Аноним 15/08/15 Суб 09:58:42 #33 №99858097 
>>99857425 (OP)
Последней строкой добавь having count(*) = 2
Аноним 15/08/15 Суб 09:59:03 #34 №99858106 
14396219430580.jpg
ОП ПИДАРАС КОРОЧЕ ТУПОЙ, А НАМ ЛЕНЬ СОЗДАВАТЬ ТАБЛИЦУ
Аноним 15/08/15 Суб 09:59:03 #35 №99858107 
>>99858004
То есть idmemas < 3
Аноним 15/08/15 Суб 10:00:05 #36 №99858138 
>>99858046
select idkek from mimas_table where idkek in (1,4)
Аноним 15/08/15 Суб 10:00:27 #37 №99858148 
>>99858064
Ох бля. Спасибо, добрый анон!!
>>99858097
Пробовал, только немного неправильно пробовал, а ты все верно написал. Теперь работает!
Спасибо всем большое!
Аноним 15/08/15 Суб 10:00:50 #38 №99858160 
>>99858138
А ты умен.
Аноним 15/08/15 Суб 10:00:58 #39 №99858163 
>>99857425 (OP)
А если сделать join таблицы mimas_table саму с собой? Не помню правда, можно ли так, и какой синтаксис.
Типа
SELECT mimas_table1.idkek FROM mimas_table1, mimas_table2 WHERE mimas_table1.idmemas = 1 AND mimas_table2.idkek = mimas_table1.idkek AND mimas_table2.idmemas = 2

здесь mimas_table1 и mimas_table2 - алиасы для одной таблицы mimas_table

Аноним 15/08/15 Суб 10:01:57 #40 №99858195 
>>99857904
Опередил.
поздно вкатившийся дрочитель табличек
Аноним 15/08/15 Суб 10:03:11 #41 №99858219 
>>99858148
не делай как он написал
селект внутри селекта это плохо

нужно делать так:

SELECT
t1.idkek
FROM
MIMAS_TABLE t1 inner join MIMAS_TABLE t2 on t1.idkek=t2.idkek
where t1.idmemas=1 and t2.idmemas=2
Аноним 15/08/15 Суб 10:03:14 #42 №99858221 
>>99858195
Дрочитель табличек, а дай какое-нибудь еще задание, пожалуйста.
Аноним 15/08/15 Суб 10:04:17 #43 №99858253 
>>99858219
Спасибо, годно, очень годно.
Аноним 15/08/15 Суб 10:04:25 #44 №99858257 
>>99858221
select date
from table
date - поле datetime, как сделать так, чтобы в запросе результаты, равные нулевой дате(1.1.1900), заменялись на пустое значение ""?
Аноним 15/08/15 Суб 10:05:15 #45 №99858287 
>>99858253
ты понял блять? не делай селекты внутри селектов иначе будешь батхёртом

а от джоинов тянки текут
и да, индексы не забывай
Аноним 15/08/15 Суб 10:05:59 #46 №99858308 
>>99858287
Джоины не всегда предпочтительней подзапросов. Но обычно предпочтительнее.
Аноним 15/08/15 Суб 10:06:58 #47 №99858338 
>>99858257
очевидно делать это надо в бизнес логике, а не в запросе
ты хуй, уходи

>>99858308
он блять селект составить не может
не путай его, для него они в 99% случаев предпочтительнее
Аноним 15/08/15 Суб 10:07:44 #48 №99858358 
>>99858287
Понял-понял, чего ты.
Дай пример с индексами.
Аноним 15/08/15 Суб 10:08:46 #49 №99858380 
>>99858358
скажи зачем тебе
на работу устраиваешься?
Аноним 15/08/15 Суб 10:10:16 #50 №99858427 
>>99858338
> очевидно делать это надо в бизнес логике, а не в запросе
Так и скажи, что не осиливаешь. И никто не будет перестраивать текущий формат данных под новый задачи, это новые задачи будут подстраиваться под формат данных, чтобы не рушилась работа всей структуры.
Ладно, давай совсем изи задачку.
В таблице три поля X, Y, Z. Поля текстовые. Написать запрос, который выведет значение первого непустого поля.
>>99858358
Индексы ставь на поля в таблице, по которым осуществляется join и where.
Аноним 15/08/15 Суб 10:10:30 #51 №99858434 
>>99858380
Ну да, типа удаленную, чел на аутсорс набирает. Простые запросы писать я умею.
Аноним 15/08/15 Суб 10:14:53 #52 №99858595 
>>99858427
select first 1 where (x <> '')

например так?
Аноним 15/08/15 Суб 10:15:29 #53 №99858620 
>>99858595
блять
select first 1 * from table where x <> ''
Аноним 15/08/15 Суб 10:16:47 #54 №99858670 
>>99858427
>И никто не будет перестраивать текущий формат данных под новый задачи
ох пиздец ты даже не понял о чём я

>>99858595
оп, аккуратнее, один из поясняющих тебе - очередная криворукая макака, не воспринимай всерьёз его советы

джоиногосподин
Аноним 15/08/15 Суб 10:17:16 #55 №99858691 
>>99858595
Ты не понял задачу. Надо вывести по каждой записи первое значение непустого поля. Пример
"" "0" ""
"1" "1" ""
"" "" "2"
Выведет
0
1
2
Аноним 15/08/15 Суб 10:19:19 #56 №99858769 
>>99858670
> ох пиздец ты даже не понял о чём я
Ты сказал, что нужно менять бизнес-логику. Её не всегда можно поменять, вернее вообще не поменять после того, как тебе поставили конкретную задачу о том какие данные хотят видеть. А ты очередной неосилятор, который не смог осилить задание и считающий, что виноват в этом не он, а "плохое задание".
Аноним 15/08/15 Суб 10:19:49 #57 №99858784 
>>99858138

А почему энд не работает?
Аноним 15/08/15 Суб 10:20:19 #58 №99858804 
>>99858784
Работает, просто так быстрее написать, видимо.
Аноним 15/08/15 Суб 10:21:14 #59 №99858830 
>>99858670
Джойногосподин, дай что-нибудь толковое почитать. Все мануалы и обучалки состоят из одних инсертов, дропов, криейтов. Может, есть какие-то годные примеры-задания с ответами?
>>99858691
И как же такое сделать например?

И еще - поясните за индексы, будьте добры. Да, я хуево в этом понимаю.
Аноним 15/08/15 Суб 10:23:59 #60 №99858932 
>>99858691
Select
(
If ( length(x)>0, x,
If ( length(y)>0, y,
If ( length(z)>0, z, null )))
) as str
From t1
Аноним 15/08/15 Суб 10:25:42 #61 №99859014 
>>99858769
что мешает тебе в твоём пхп сделать ИФ 1.1.1990 ЗЭН нулл?
зачем делать это запросом в бд?

>>99858830
только практика
я хуй знаю почему все угарают по этим дурацким упражнениям

сделай свой сайт, профорсь среди анонов, посмотри как он падает от 10 посетителей, поставь индексы, охуей

ты никогда не поймёшь пользы от джоинов, индексов, делая задачки
только практика
Аноним 15/08/15 Суб 10:29:04 #62 №99859166 
>>99858932
Это под чем так можно делать вообще? IF вообще допустимо в запросах?
Мой Firebird такое не понимает, разве что в хранимых процедурах.
Аноним 15/08/15 Суб 10:29:28 #63 №99859181 
14396237680650.jpg
>>99857425 (OP)
select idkek from mimas_table where (idmemas=1 or idmemas=2)
Аноним 15/08/15 Суб 10:30:26 #64 №99859221 
>>99858830
> И как же такое сделать например?
Функция coalesce, можешь загуглить. Погугли разные функции и фичи, поможет в дальнейшем. Часто не надо изобретать велосипед, так как всё уже придумано.
> поясните за индексы
Вкратце индексы ускоряют выборку данных, создавая некую "карту", по которой эти данные перебираются. Допустим в таблице есть id, мы отбираем данные по айдишнику, индекс ускорят наш поиск и отбор данных. Индексировать таблицу надо по полям, по которым строятся связи с другими таблицами(join) и осуществляется отбор данных(where). Много индеков не надо, если таблица активная, то есть в неё постоянно добавляются новые данные.
Если таблицы маленькие, то применение индексов ты практически не заметишь. А вот если монстры с хуевым количеством строчек, то не дай бог тебе сделать выборку с несколькими джоинами по не индексируемым полям, ты охуеешь.
>>99859014
> что мешает тебе в твоём пхп сделать ИФ 1.1.1990 ЗЭН нулл?
Логика данных, чтобы в этом поле была самая наименьшая дата. NULL не сравнивается, поэтому если какой-то отчет будет искать минимульную дату по этим строчкам, то он не найдет нулл. И да, я не php-программист, я просто дрочитель табличек в банке.
>>99858932
Гроб и кладбище по производительности. А вообще синтаксис не ms sql(T-SQL), там бы такая хуйня не сработала. И вложенные условия - плохо, когда есть CASE.
Аноним 15/08/15 Суб 10:32:11 #65 №99859290 
>>99859166
https://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if
sageАноним 15/08/15 Суб 10:33:04 #66 №99859328 
>>99857425 (OP)
КЕК
Аноним 15/08/15 Суб 10:34:36 #67 №99859396 
14396240768300.jpg
>>99857425 (OP)
мамкин погроммист в тренде:

SELECT IDKEK
FROM mimas_table
WHERE IDMEMAS IN(1, 2)

выберет все кеки, у которых мемас = 1 или 2


зы. ОП, ты что хуй, что не можешь такое слабое говно написать?
Аноним 15/08/15 Суб 10:34:46 #68 №99859405 
>>99859221
>coalesce
В твоем примере там были не NULL, а пустые строки. Не сработало бы.
Аноним 15/08/15 Суб 10:35:15 #69 №99859424 
>>99859396
> выберет все кеки, у которых мемас = 1 или 2
А надо не "или", а "и".
Аноним 15/08/15 Суб 10:35:38 #70 №99859438 
>>99859221
>NULL не сравнивается, поэтому если какой-то отчет будет искать минимульную дату по этим строчкам

и то что записи с нуллом не находится - результат неграмотного запроса а не нулла лол

макаки не смогли в скл и пошли городить костыли - в этом вся проблема
Аноним 15/08/15 Суб 10:35:57 #71 №99859455 
>>99859396
Долбоеб, ОП-пост вообще читал?
Аноним 15/08/15 Суб 10:38:22 #72 №99859555 
ПОЧЕМУ ТОЛЬКО ПОДЗАПРОС РАБОТАЕО ИЛИ ДЖОИН А "И" не работает?
Аноним 15/08/15 Суб 10:40:08 #73 №99859635 
>>99859555
ну, потому что 2+2=4
не знаю как тебе ещё объяснить
Аноним 15/08/15 Суб 10:40:33 #74 №99859650 
14396244336160.jpg
>>99857425 (OP)
ОП, с 10-го раза только смог понять что тебе сукиному-сыну надо (ебани подзапросами):

select IDKEK
from table a
where exists(select Id from table b where b.IDKEK = a.IDKEK AND b.IDMEMAS = 1) AND
exists(select Id from table b where b.IDKEK = a.IDKEK AND b.IDMEMAS = 2) AND
Аноним 15/08/15 Суб 10:40:52 #75 №99859661 
>>99859555
Потому что Условие "если Х =1 И Х=2" всегда будет false. Так Как Х не может быть одновременно 1 и 2
Аноним 15/08/15 Суб 10:41:50 #76 №99859705 
14396245106430.jpg
>>99859661
Спасибо.
Аноним 15/08/15 Суб 10:42:18 #77 №99859719 
>>99859650
ёб твою мать, а что не 10 селектов то?
уёбывай нахуй отсюда
Аноним 15/08/15 Суб 10:42:30 #78 №99859732 
>>99859555
Потому что не может быть одновременно двух состояний.
>>99859650
Да решили уже давно очень элегантно, спасибо джойногосподину. Пришло понимание как можно замыкать таблицу на саму себя. Раньше до такого и не додумался бы.
Аноним 15/08/15 Суб 10:44:01 #79 №99859777 
14396246416830.jpg
>>99859719
пуша мать твоя - шалава, а ты сын шалави, а батя твой - спермовор.
Аноним 15/08/15 Суб 10:44:47 #80 №99859804 
>>99857425 (OP)
> where idmemas in (1, 2)
WHERE idmemas = 1 AND idmemas = 2
Аноним 15/08/15 Суб 10:46:33 #81 №99859889 
>>99859804
Еще один.
Аноним 15/08/15 Суб 10:48:45 #82 №99860007 
>>99859804
Всегда спрашива на собеседовании такую задачу и постоянно отвечают такую хуйни, как ты. Читай >>99859661
Аноним 15/08/15 Суб 10:49:04 #83 №99860022 
14396249440980.png
>>99857425 (OP)
Оу вэй! Я люблю си-шарп!


var result = from node in dictionary
where node.j == 2 || node.j == 1
select new { ResultI = node.i, ResultJ = node.j };
Аноним 15/08/15 Суб 10:49:06 #84 №99860023 
Джойнер еще тут? А если бы было больше условий, то тогда как, еще раз делать джойн на джойн чтоль?
Аноним 15/08/15 Суб 10:51:17 #85 №99860129 
>>99859438
Стартовые условия:
- table(account, date)
- Даты любые, включая NULL
Окей, напиши мне максимально производительный запрос, который вернет наборы договор-минимальная дата. Если дата NULL, то вместо неё вывести пустое значение строки.
И я посмотрю насколько производительнее будет он селекта минимального значения с группировкой, и последующей заменой 1.1.1900 на ''
Аноним 15/08/15 Суб 10:51:36 #86 №99860142 
>>99860022
Господь, храни Microsoft за их божественный Linq to SQL
Аноним 15/08/15 Суб 10:51:37 #87 №99860144 
>>99857425 (OP)
Почему только кеки 1 и 4? Значения идмемас равно 1 и 2 же почти у всех кеков, кроме идкек 2 и 3.
Аноним 15/08/15 Суб 10:56:10 #88 №99860354 
Раз уж такой тред, то может кто-нибудь подскажет как определить в какой версии программы создан mdb файл? Скачивал офис до 2003, но он все равно говорит, что файл создан в более ранней версии программы, а после конвертации его в 2003, файл не открывается (открывается, но он как бы пустой, наверное).
У людей, у которых я взял этот файл стояла семерка и какой-то access. Не думаю, что 97, потому что что-то похожее на досбокс я не видел.
Базы данных давно не видел, и забыл что вообще с ними нужно делать.
Аноним 15/08/15 Суб 10:57:16 #89 №99860403 
Здесь элементарный групбай. Какие джойны нахуй, вы там совсем наркоманы? Странно, что столько ответов и ни одного нормального.

select idkek
from mimas_table
where idmemas in (1, 2)
group by 1
having count(distinct(idmemas)) = 2

Даже если SQL ОПа не понимает count(distinct), можно легко сделать distinct через group by и подзапрос.
Аноним 15/08/15 Суб 10:57:27 #90 №99860414 
>>99860354
Попробуй в свойствах файла во вкладку "подробнее" посмотреть, там может быть мета информация есть с версией
Аноним 15/08/15 Суб 10:58:29 #91 №99860473 
>>99860144
Потому что надо вывести кеки, для которых в таблице есть ДВЕ записи: с мемас = 1 и мемас = 2
Аноним 15/08/15 Суб 11:00:02 #92 №99860545 
14396256021700.png
>>99860403
Да, блин, написал же уже и так.
>>99860354
Можно попробовать узнать формат файла и по какому смещению лежит значение версии твоего mdb, тогда обычным считыванием в твоей программе можно узнать.
Аноним 15/08/15 Суб 11:01:13 #93 №99860603 
>>99860414
Нет, только тип указан, что это microsoft access database. Ну и атрибуты (А), дата создания...
Аноним 15/08/15 Суб 11:01:42 #94 №99860627 
>>99860354
Попробуй офис ХР или на совсем худой конец 97.
Аноним 15/08/15 Суб 11:02:22 #95 №99860648 
>>99860545
> Можно попробовать узнать формат файла и по какому смещению лежит значение версии твоего mdb
Нихуя не понял.
Аноним 15/08/15 Суб 11:04:50 #96 №99860768 
>>99860545
Без distinct оно неправильно считать будет. Если будет набор строк (4,1) (4,2) (4,2), то обычный count(*) вернёт число 3. В то время как по логике здесь только 2 разные строки, а не 3.
Аноним 15/08/15 Суб 11:08:59 #97 №99860984 
>>99860648
Каждый файл из какой-либо программы - это структурированный набор данных, свой формат. Само собой версию файла/программы они где-то в нем тоже прописывают.
>>99860768
Сейчас попробую.
Аноним 15/08/15 Суб 11:09:55 #98 №99861035 
>>99860768
Кстати, вот такого (4,2) (4,2) ведь быть не может.
Аноним 15/08/15 Суб 11:12:23 #99 №99861160 
>>99861035
Он в качестве примера сказал, его скрипт универсален на любые данные таблицы.
Аноним 15/08/15 Суб 11:14:04 #100 №99861250 
14396264446520.png
>>99860984
Только как ее найти? Нашел только пикрелейтед.
Аноним 15/08/15 Суб 11:15:18 #101 №99861320 
14396265186060.jpg
есть тут эксперты 1с
как из текстового файла со строками
залупа;пися
получить таблицу значений с 2 колонками - залупа и пися??
мм?
Аноним 15/08/15 Суб 11:16:09 #102 №99861360 
>>99861320
Что это за новый мемас с котом на блинах?
Аноним 15/08/15 Суб 11:16:18 #103 №99861370 
>>99857425 (OP)
В mysqladmin пиши:
EEE, SLISH, MEMAS ZAPILIL, SUQQQQQQQQQA;
Про точку с запятой не забудь главное.
Аноним 15/08/15 Суб 11:18:57 #104 №99861516 
14396267372190.jpg
>>99861360
да хз котик какой то забавный
Аноним 15/08/15 Суб 11:19:19 #105 №99861538 
>>99860768

select distinct idkek
from mimas_table
where idmemas in (1, 2)
group by idkek
having count(idkek) = 2

А вот так разве не правильней?
Аноним 15/08/15 Суб 11:21:25 #106 №99861652 
http://www.youtube.com/watch?v=6hcSpSC8T0M
Аноним 15/08/15 Суб 11:26:06 #107 №99861903 
>>99861250
http://justsolve.archiveteam.org/wiki/Access
Вот, в общем где-то здесь.
Если уж сильно надо, вбрасывай, чего-нибудь придумаем.
Аноним 15/08/15 Суб 11:32:10 #108 №99862218 
>>99861320
Формат вида
kokoko;kokoko - это CSV, открой в Excel.
Аноним 15/08/15 Суб 11:49:08 #109 №99862998 
>>99861903
Это наверное единственный файл который можно свободно отдать и за это мне ничего не будет.
pwd=мпт1965

http://rghost.net/6RMxyj8ps
Аноним 15/08/15 Суб 11:58:41 #110 №99863449 
>>99862998
На всякий случай закину свою фейкопочту. Вдруг тред потонет.
[email protected]
Аноним 15/08/15 Суб 12:01:03 #111 №99863571 
>>99863449
Так, а что ты от него хочешь-то? Пробовал в старых офисах открывать? Тебе просто нужно понять, в какой версии он сделан?
Аноним 15/08/15 Суб 12:05:14 #112 №99863776 
>>99863571
> Тебе просто нужно понять, в какой версии он сделан?
Да, чтобы открыть его. У меня интернет очень медленный, и я заебался качать офисы. А очень старые нужно искать портативные версии, чтобы отрыть через досбокс. В суперстрых не пробовал. Сука, мне еще торренты днём запрещают качать.
Аноним 15/08/15 Суб 12:11:09 #113 №99864093 
>>99857425 (OP)
Я бы тебе яйца оторвал за такую архитектуру БД.
мимо девелопер
Аноним 15/08/15 Суб 12:14:11 #114 №99864238 
>>99857425 (OP)
Поставь phpmyadmin, там сделай действие, отображается код. Переписываешь под свои нужды и код выполняет все что тебе нужно.
Аноним 15/08/15 Суб 12:15:01 #115 №99864288 
>>99864093
Почему?
Аноним 15/08/15 Суб 12:16:41 #116 №99864360 
>>99864093
Оторви их тем, кто придумывает такие вопросы на собеседованиях.
Собственно, ничего сильно плохого не вижу. Представь, что это таблица заказов каких-нибудь.
>>99863776
Погоди, сейчас что-нибудь придумаем.
Аноним 15/08/15 Суб 12:19:24 #117 №99864487 
>>99864093
Таблица DVCH_MEMASTYPE, PK MEMASTYPEID
Таблица DVCH_KEK, PK KEKID, связана с DVCH_MEMASTYPE по MEMASTYPEID
Так лучше?
Мимо не оп
Аноним 15/08/15 Суб 12:23:26 #118 №99864677 
>>99864487
Добавлю.
Чтобы KEK мог содержать связи с несколькими мемасами, добавляем таблицу DVCH_KEKMEMASLINK, где храним связь KEKID и MEMASID.
Да, сука, нужно больше сущностей. Обожаю плодить сущности.
Аноним 15/08/15 Суб 12:26:10 #119 №99864847 
14396307703060.png
>>99864677
Много-ко-Многим так и делается через дополнительную таблицу, где обычные один-ко-многим.
>>99863776
А тебе просто данные оттуда нужны? Если да, то вот.
Аноним 15/08/15 Суб 12:29:37 #120 №99865027 
>>99864847
>Много-ко-Многим так и делается через дополнительную таблицу, где обычные один-ко-многим.
Хорошо.
Аноним 15/08/15 Суб 12:33:47 #121 №99865286 
>>99864847
Поставь мини-тз на проектирование структуры БД. Попробую решить. Только не сильно сложное.
Мимо работаю охранником, SQL учил 8 лет назад в универе
Аноним 15/08/15 Суб 12:34:20 #122 №99865319 
>>99864847
> А т0ебе просто данные оттуда нужны?
Походу мне нужны еще и запросы оттуда. Как мне объяснили, у них забирают программу какую я так и не понял, решил сначала посмотреть и они не смогут что-то делать. Говорят, что офис у них не заберут. Короче, я не понял, что у них могут забрать, но нужно им все скопировать, чтобы они дальше пользовались чем-то наверное запросами.
Хотел же скачать эту прогу, но начал ебаться с акцессом. Надеюсь, оттуда можно вытащить запросы.
Аноним 15/08/15 Суб 12:35:31 #123 №99865390 
>>99865319
Какие запросы? Ты наркоман? Хранимые процедуры, может?
Аноним 15/08/15 Суб 12:36:56 #124 №99865478 
>>99865390
> Хранимые процедуры
Да, они. Ну, я забыл как это называется.
Аноним 15/08/15 Суб 12:50:43 #125 №99866211 
>>99865286
Ну это, вестимо, к господам, что писали мне выше. Они в разы круче меня. От себя могу вот такое например - создай каталог музыки, например. Чтобы были списки жанров, исполнителей, ссылки где лежат mp3 файлы. Вот как-то так.
>>99865390
По-моему в Access оно так и называется - Запросы. Но по сути это да, хранимые процедуры. Утверждать не буду, акцесс лень ставить.
Аноним 15/08/15 Суб 12:52:42 #126 №99866334 
SELECT IDKEK FROM KEK k1 JOIN KEK k2 USING(IDKEK) WHERE k1.IDEMAS=1 and k2.IDEMAS=2;
Аноним 15/08/15 Суб 12:56:25 #127 №99866527 
>>99866334
using - это вместо ON табл1.поле = табл2.поле, да?
Аноним 15/08/15 Суб 13:01:00 #128 №99866753 
14396328609460.png
>>99864847
> чешь-то? Пробовал в старых офисах открывать? Тебе пр
Хм, а как можно посмотреть где хранятся процедуры в этой программе. Что-то я нихуя не вижу.
Когда мне показывали акцесс, то включали бд и там сразу выскакивало окно с кнопками. Как я понял это были процедуры. Блядь, а может на эти кнопки просто повесили таблицы...
Аноним 15/08/15 Суб 13:06:01 #129 №99867033 
>>99866753
Не, тут немного другое дело. Эта программа MDB Viewer она на то и вьювер, чтобы только данные посмотреть. Аксесс это же полноценная СУБД, в которой к тому же можно делать "программы" с интерфейсом и кодом на VBA. Кроме как им - ничем не запустишь это дерьмо. Ну что, спешалли фо ю скачать access 97 и проверить?
Аноним 15/08/15 Суб 13:11:33 #130 №99867335 
>>99867033
> Ну что, спешалли фо ю скачать access 97 и проверить?
Было бы неплохо. А то я думаю, в понедельник пойти посмотреть, что у них на компе, и думаю, что буду тупить и не найду эти ебаные процедуры, триггеры и всякую другую хуйню.
Аноним 15/08/15 Суб 13:16:17 #131 №99867586 
>>99867335
Ок, тогда подожди малость, проверю. Если тренд смоет - отпишу тебе в почту.
Аноним 15/08/15 Суб 13:16:41 #132 №99867615 
>>99867586
Хорошо.
Аноним 15/08/15 Суб 13:19:35 #133 №99867780 
>>99866211
>От себя могу вот такое например - создай каталог музыки, например. Чтобы были списки жанров, исполнителей, ссылки где лежат mp3 файлы. Вот как-то так.
Допустим
Таблица GENRE. Поля: GENREID (PK), GENRENAME (может какие-нибудь GENREGROUP еще по необходимости, тут я не шарю в предметной области).
Таблица AUTHOR. Поля AUTHORID, AUTHORNAME
Таблица TRACK. Поля TRACKID (PK), AUTHORID, TRACKNAME (можно еще год или связку с отдельной таблицей альбомов)
Таблица TRACKGENRELINK. Поля LINKID (PK), TRACKID, GENREID

Как-то так.
Аноним 15/08/15 Суб 13:22:59 #134 №99867961 
>>99867780
Лол, в таблице TRACK забыл поле TRACKPATH с относительным путем до трека. А сам каталог будет где-нибудь в конфиге.
Аноним 15/08/15 Суб 13:40:50 #135 №99868963 
Транзактэскуэльный бамп. Не тонем.
Аноним 15/08/15 Суб 13:42:18 #136 №99869052 
>>99867615
В общем, в 97 кое-как открылось. Пока старый DAO не прорегал в системе не открывалось. Так вот после открытия он говорит -
Ошибка обновления. Поля уже созданы.

Потом еще один мессадж-бокс самодельный вылетает - Таблица уже создана [STOP]
Аноним 15/08/15 Суб 13:46:03 #137 №99869294 
>>99867780
Ну как-то так, да. Добавь еще таблицу Сборники, помнишь, раньше были такие типа СОЮЗ-666 и прочие. В одном сборнике в общем чтобы были разные группы, может быть по несколько песен одной группы.
Кстати, вот не знаю кто как а я, когда создаю таблицы, то обычно поля называю просто ID, NAME и так далее, для меня так короче и наглядней, в любом случае ведь обращаешься GENRE.ID
Или это не совсем правильный подход? Просветите, знатоки.
Аноним 15/08/15 Суб 13:47:52 #138 №99869407 
>>99869052
А таблицы отобразились? Качать мне 97 или пробовать 95?
Аноним 15/08/15 Суб 13:49:34 #139 №99869523 
>>99869407
Нет, таблиц и форм нет, но это запрограммированный выход из программы. Т.е. оно работает, но что-то ему не нравится. В общем, тебе нужен 97 офис, в нем работает, но нужны еще какие-то условия. Может, где-то еще файло какое-то лежит, на которое он смотрит.
Аноним 15/08/15 Суб 13:53:07 #140 №99869765 
>>99869523
Хорошо качну его. Мне портабл качать, я не ошибаюсь, что его досбоксом нужно открывать?
Аноним 15/08/15 Суб 13:55:39 #141 №99869893 
>>99869765
Ох щи, ну если есть портбл, то качай его, только причем тут DOSBox? Это обычное win32 приложение. Просто запускай и все. Офис под дос хрен его знает когда был, да и не было там акцеса.
Аноним 15/08/15 Суб 13:59:18 #142 №99870093 
>>99857425 (OP)
Оп, ты тупой дегенерат, у тебя правльый запрос, а ты выебал мне мозг своим тупым тредом. Иди нахуй.
Аноним 15/08/15 Суб 14:00:02 #143 №99870136 
>>99869893
Я как-то скачал обычный 97, так он мне выдал, что моя операционная система не поддерживается. Может из-за того, что у меня десятка. Ладно, буду пробовать. Спасибо.
Аноним 15/08/15 Суб 14:04:56 #144 №99870424 
>>99870093
Нахуй иди. У меня изначально был неправильный запрос, я в нем дописывал закаким-то хуем having count() > 2 и он не работал, почему я ставил больше - сам не понял, затупил. Если дописать having count() = 2, то все будет окей. И как тут правильно подсказали - в селекте нужен еще distinct. Это одно из решений, можно еще замыкать таблицу на себя какбы, джойнить саму с собой.
>>99870136
Если совсем все плохо, то качай VirtualBox, образ чистой winxp, создавай вирт.машину, монтируй образ в вирт.привод и ставь ХР. Недавно пришлось такое делать - ставится бегом просто и работает очень быстро. Что-то они сделали с VirtualBox'ом хорошее. Потом туда поставишь офис97, попробуй еще офисХР на всякий случай.
Аноним 15/08/15 Суб 14:10:00 #145 №99870730 
>>99870424
> Если совсем все плохо, то качай VirtualBox
Ага, спасибо. Как мне не хочется возиться с виртуальными машинами...
Аноним 15/08/15 Суб 14:12:31 #146 №99870871 
>>99869294
>Кстати, вот не знаю кто как а я, когда создаю таблицы, то обычно поля называю просто ID, NAME и так далее, для меня так короче и наглядней, в любом случае ведь обращаешься GENRE.ID
Мне кажется, что понятней, когда все поля в разных таблицах называются одинаково. Иначе поле ID в одной таблице будет полем TYPEID в другой, допустим.
Аноним 15/08/15 Суб 14:22:05 #147 №99871396 
>>99870871
Ну да, у меня так и есть, но я не путаюсь. Например
таблица
STREET
id (PK), name

и таблица
PEOPLE
id, name, street_id (FK)

Возможно, это и не совсем правильно их так именовать, но я все равно никогда в групповой разработке не участвовал, потому и не знаю общепринятых норм.
Аноним 15/08/15 Суб 14:24:30 #148 №99871521 
>>99871396
> (PK)
Первичный ключ
> (FK)
А это какой?
Аноним 15/08/15 Суб 14:30:48 #149 №99871890 
>>99871521
Как какой, FOREIGN же внешний ключ, по которому цепляешься.
Аноним 15/08/15 Суб 14:35:58 #150 №99872219 
>>99871890
> FOREIGN
Да я просто забыл всё на свете. А он где-то отмечается или его самому помнить нужно? Никогда не понимал как строятся связи между таблицами на графике. Думал, что это помнить нужно и что сам если увидишь большую базу данных, то сам в ней не разберешься.
Аноним 15/08/15 Суб 14:37:35 #151 №99872322 
>>99857425 (OP)
Через подзапросы не судьба?
Тред не читал.
Аноним 15/08/15 Суб 14:41:56 #152 №99872614 
>>99872322
Видать в том и дело, что не читал. Зачем нужны подзапросы, если можно без них? Как писал тут один анон - если ты юзаешь подзапросы, то ты батхерт.
Аноним 15/08/15 Суб 15:03:19 #153 №99873990 
>>99857425 (OP)
SELECT DISTINCT `IDKEK` FROM `mimas_table` where `IDMEMAS` = 1 OR `IDMEMAS`=2;
Ну изи же. IN медленней чем просто OR в разы, так что если не много значений лучше так.
Аноним 15/08/15 Суб 15:07:07 #154 №99874213 
>>99873990
Еще один лалка. Следующий! in там для красоты и быстроты написания. Суть не в нем.
Аноним 15/08/15 Суб 15:08:24 #155 №99874298 
>>99874213
этот запрос работает норм
Аноним 15/08/15 Суб 15:13:54 #156 №99874643 
>>99874298
Конечно работает. Только выбирает не то, что нужно, а так все норм.
Аноним 15/08/15 Суб 15:23:11 #157 №99875193 
>>99874643
всё правильно выбирает
Аноним 15/08/15 Суб 15:26:38 #158 №99875419 
>>99874643
а, понял в чём затупил, ему надо и 1 и 2
тогда
SELECT DISTINCT `IDKEK` FROM (
SELECT `IDKEK`, count(`IDMEMAS`) as C FROM `mimas_table` where `IDMEMAS` = 1 OR `IDMEMAS`=2 )
WHERE C>1;
Аноним 15/08/15 Суб 16:13:52 #159 №99878461 
>>99875419
Ну криво же.
Аноним 15/08/15 Суб 16:15:06 #160 №99878538 
>>99878461
может не очень красиво, зато быстро
Аноним 15/08/15 Суб 16:16:21 #161 №99878612 
>>99878538
окау.жпг
Аноним 15/08/15 Суб 16:20:21 #162 №99878878 
>>99875419
ты уверен что эта хуйня должна работать? с count так неззя
Аноним 15/08/15 Суб 16:28:59 #163 №99879402 
>>99878878
Ну вообще count можно выбирать, но только одно значение например тащемта.
Аноним 15/08/15 Суб 16:30:15 #164 №99879469 
>>99878878
>>99875419
Все, сам подправил
SELECT mimas_table.IDKEK
FROM (
          SELECT mimas_table.IDKEK, Count(mimas_table.IDKEK) AS C
          FROM mimas_table
          WHERE (mimas_table.IDMEMAS=1 Or mimas_table.IDMEMAS)=2)
          GROUP BY mimas_table.IDKEK)
WHERE C>1
Аноним 15/08/15 Суб 16:31:29 #165 №99879554 
>>99879469

там не было указано по какому полю делить count
Аноним 15/08/15 Суб 16:35:02 #166 №99879763 
>>99879469 со скобками немного накосячил, вроде исправил
SELECT mimas_table.IDKEK
FROM (
          SELECT mimas_table.IDKEK, Count(mimas_table.IDKEK) AS C
          FROM mimas_table
          WHERE (mimas_table.IDMEMAS=1) Or (mimas_table.IDMEMAS=2)
GROUP BY mimas_table.IDKEK
          )
WHERE C>1
comments powered by Disqus