
Юра
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
это меня успокоило