Юра
27.10.2018
14:31:07
CREATE TABLE A (
id SERIAL,
name VARCHAR(10)
);
CREATE TABLE B (
id SERIAL,
name VARCHAR(10),
A_id INTEGER NOT NULL
);
ALTER TABLE A
ADD PRIMARY KEY (id);
ALTER TABLE B
ADD PRIMARY KEY (id),
ADD CONSTRAINT B_A_id_fkey FOREIGN KEY (A_id) REFERENCES A (id) MATCH FULL;
INSERT INTO A (name) VALUES ('a1'), ('a2');
INSERT INTO B (name, A_id) VALUES ('b1', 1), ('b2', 1), ('b3', 2);
SELECT * FROM A INNER JOIN B ON A.id = B.A_id;
id | name | id | name | a_id
----+------+----+------+------
1 | a1 | 1 | b1 | 1
1 | a1 | 2 | b2 | 1
2 | a2 | 3 | b3 | 2
Fike
27.10.2018
14:31:10
С людьми еще общаться, выяснять, что они хотят
Al
27.10.2018
14:31:40
Andrey
27.10.2018
14:31:55
Google
Юра
27.10.2018
14:31:59
CREATE TABLE A (
id SERIAL,
name VARCHAR(10)
);
CREATE TABLE B (
id SERIAL,
name VARCHAR(10),
A_id INTEGER NOT NULL
);
ALTER TABLE A
ADD PRIMARY KEY (id);
ALTER TABLE B
ADD PRIMARY KEY (id),
ADD CONSTRAINT B_A_id_fkey FOREIGN KEY (A_id) REFERENCES A (id) MATCH FULL;
INSERT INTO A (name) VALUES ('a1'), ('a2');
INSERT INTO B (name, A_id) VALUES ('b1', 1), ('b2', 1), ('b3', 2);
SELECT * FROM A INNER JOIN B ON A.id = B.A_id;
id | name | id | name | a_id
----+------+----+------+------
1 | a1 | 1 | b1 | 1
1 | a1 | 2 | b2 | 1
2 | a2 | 3 | b3 | 2
Вот тот вывод имеет повторяющиеся а1. А я не хочу повторяющиеся а1. Я хочу этот джойн как-нибдуь сгруппировать, чтобы b1 и b2 уместились в одну строку с а1
Al
27.10.2018
14:32:09
Юра
27.10.2018
14:32:11
Я не знаю даже как представить такую стрктуру в бд
Ilia
27.10.2018
14:32:16
Спасибо. Не буду так делать. Сделаю так, чтобы было не через жоп. Обработаю эти данные на сервере и сгруппирую как мне хочется
Потом, кто мешает тебе вывести набор данных , отсортированный по ключу A, и потом по ключу Б?
Так все и делают, клиент радостно бежит по набору, и очень легко находит, где кончается один A, и начинается другой A...
Зато это универсально, переносимо, и вообще.
Anton
27.10.2018
14:32:50
Юра
27.10.2018
14:32:56
Потом, кто мешает тебе вывести набор данных , отсортированный по ключу A, и потом по ключу Б?
Так все и делают, клиент радостно бежит по набору, и очень легко находит, где кончается один A, и начинается другой A...
Зато это универсально, переносимо, и вообще.
Ну мне на клиенте нужно иметь хешмап, в котором у А есть массив хешмпапов Б
Fike
27.10.2018
14:33:08
Al
27.10.2018
14:33:34
Ilia
27.10.2018
14:33:36
Andrey
27.10.2018
14:33:37
Юра
27.10.2018
14:34:17
Ilia
27.10.2018
14:34:26
Юра
27.10.2018
14:34:34
Спасибо!
Google
Ilia
27.10.2018
14:34:37
Al
27.10.2018
14:34:40
Юра
27.10.2018
14:34:45
Ilia
27.10.2018
14:34:50
Al
27.10.2018
14:34:51
От слова совсем
Ему нужно получить вложение с вложениями
Никакая бд тебе такое не сделает
Ilia
27.10.2018
14:35:38
От слова совсем
Ну, я из практики знаю. У нас даже самые "тупые" если можно так сказать девелоперы легко с этим справлялись.
Al
27.10.2018
14:36:02
Andrey
27.10.2018
14:36:03
Ilia
27.10.2018
14:36:14
Al
27.10.2018
14:36:14
Ilia
27.10.2018
14:36:39
Так я как раз и предлагал сделать это на клиенте
Юра
27.10.2018
14:36:51
Да
Он это и предлагает, а я это уже делаю
Al
27.10.2018
14:37:05
Ilia
27.10.2018
14:38:24
Единственно, что тут плохо, что растёт объём данных немного, особенно если из B к одной A соотносится очень много записей.
Тогда можно разделить на два набора данных, тупо только из A , и потом только из B, без JOIN.
Но клиенту будет тяжелее устанавливать соотношение между записями.
Юра
27.10.2018
14:38:43
Ну там будет максимум 5 записей Б на одну А
Google
Юра
27.10.2018
14:38:53
Вот второй вариант мне тоже нравится
Ilia
27.10.2018
14:38:58
Юра
27.10.2018
14:39:04
Ilia
27.10.2018
14:39:11
Al
27.10.2018
14:39:28
Ilia
27.10.2018
14:39:29
Юра
27.10.2018
14:39:55
Ну тогда нестрашно.
Мне просто так не хочется иметь одинаковые данные отличающимися несколькими полями
Ilia
27.10.2018
14:40:16
Al
27.10.2018
14:40:16
Ilia
27.10.2018
14:41:30
Тогда в два запроса сделаю ?
Мы помнится когда в A одна запись, всегда делали разными наборами данных.
Когда в A много -- мы делали JOIN-ed набор
Юра
27.10.2018
14:41:56
Тогда и я сделаю разными наборами данных
Erick
27.10.2018
15:00:48
Andrey
27.10.2018
15:01:10
Erick
27.10.2018
15:01:27
они есть, но waivable
Andrey
27.10.2018
15:02:15
ты точно читал договор?
Bank of America's Core Checking Account has a monthly maintenance charge of $12, but you can avoid this fee if you maintain an average daily balance of $1,500. Wells Fargo's popular Everyday Checking costs a monthly service fee of $10, but you can get it waived if you maintain a $1,500 minimum daily balance.
Al
27.10.2018
15:05:38
а то что они отвейвены не значит что их нет
Google
Erick
27.10.2018
15:06:45
гг
Al
27.10.2018
15:07:25
чуть ошибся и уже вот они
дык я как раз говорил о том что в этих онлайн банках типа того танжерина что я ссылку кидал там вообще нет фии
даже если у тебя всего 1 бакс
Erick
27.10.2018
15:09:25
ну ладно, ладно
без фи тоже есть
Al
27.10.2018
15:21:31
ну ладно, ладно
так когда пойдем пиво то пить? ну раз ты на этом материке тусишь
Erick
27.10.2018
15:22:08
вот у тебя вопросы
Al
27.10.2018
15:22:52
а то чет я давно ни к кому в гости не ездил. со всеми этими девайсо строениями
Erick
27.10.2018
16:22:39
ну эээ
приезжай
Natali
27.10.2018
16:58:22
Al
27.10.2018
16:59:28
Natali
27.10.2018
16:59:41
Пчиму
Al
27.10.2018
16:59:55
Пчиму
потому что голодная смерть
Natali
27.10.2018
17:00:11
80 процеетов населения получают меньше 100
В москве в том числе))
Al
27.10.2018
17:00:24
Natali
27.10.2018
17:00:36
Ну нет, но факт же))
Google
Al
27.10.2018
17:00:54
Natali
27.10.2018
17:00:58
Ну 180-это очень хороший программист же, не?
Это прям много знать надо там
А тут говорят - ссаные удаленщики с мухосрансков)))
Al
27.10.2018
17:01:41
Natali
27.10.2018
17:01:54
Хм...
Al
27.10.2018
17:02:12
а вот понимание процессов позволит тебе решить практически любую задачу
Natali
27.10.2018
17:02:14
Вы опятт тут переворачиваете мою картину мира)))
Вам нравится это по выходным что ли делать)))
Al
27.10.2018
17:03:15
Natali
27.10.2018
17:03:26
Пйду в магаз, куплю себе сока. Что б обмозговать эти утверждения
Al
27.10.2018
17:04:08
вот что такого может прилеть в обновлении что бы оно начало 'gpioPortC' undeclared (first use in this function)
я прям косею уже от этого веселья
Natali
27.10.2018
17:04:52
Перетерли старую функцию сделав новую с похожим функционалом))
Al
27.10.2018
17:04:54
то есть вчера все было задекларировано а сегодня внезапно стало нет
Natali
27.10.2018
17:05:11
Это норм
Al
27.10.2018
17:05:17
ок
Natali
27.10.2018
17:05:18
Писал один программист
Потом новый все потер))
Al
27.10.2018
17:05:26
это меня успокоило