Загрузка...

Помогите с объединением и связыванием таблиц в PostgreSQL

Тема в разделе Backend создана пользователем Егошка 27 ноя 2022. 137 просмотров

Загрузка...
  1. Егошка
    Егошка Автор темы 27 ноя 2022 fortnite seller 202 4 ноя 2019
    Есть 3 таблицы. Numbers, Drivers и Cars. (Номера, Водители и Машины).
    Как связать таблицы чтобы Один Водитель мог иметь несколько(рандомное кол-во) машин, а номер присваивался только к одной машине? И вывести эту таблицу соответственно.

    SQL
    CREATE TABLE drivers
    (
    id_driver SERIAL NOT NULL PRIMARY KEY,
    name_driver VARCHAR(40) NOT NULL,
    telephone BIGINT NOT NULL

    );

    INSERT INTO drivers
    VALUES
    (1, 'Пахомов Олег Матвеевич', '769159912553'),
    (2, 'Иванова Милана Ярославовна', '73930152930'),
    (3, 'Смирнова Елизавета Марковна', '700957178688'),
    (4, 'Филатов Тимофей Дмитриевич', '79013782073'),
    (5, 'Михайлов Андрей Владимирович', '7265706791'),
    (6, 'Дроздов Максим Артёмович', '77330146148'),
    (7, 'Матвеев Пётр Львович', '785613586202'),
    (8, 'Иванов Кирилл Егорович', '718612845447'),
    (9, 'Александров Артём Андреевич', '709382424050'),
    (10, 'Жилина Мия Петровна', '722041372401'),
    (11, 'Дмитриева Ангелина Алексеевна', '755223181815'),
    (12, 'Ефимов Фёдор Матвеевич', '7666588529'),
    (13, 'Медведева Ксения Ивановна', '767001837161'),
    (14, 'Карпов Богдан Даниилович', '78052168724'),
    (15, 'Майоров Илья Львович', '70393690798'),
    (16, 'Егоров Степан Александрович', '782597468020'),
    (17, 'Васильева Татьяна Павловна', '7981232625'),
    (18, 'Филатова Анна Ильинична', '794068431039'),
    (19, 'Яковлева Диана Артёмовна', '776575983996'),
    (20, 'Захаров Марк Алексеевич', '7127132106'),
    (21, 'Комаров Ярослав Михайлович', '7404312087'),
    (22, 'Акимов Степан Максимович', '773857449663'),
    (23, 'Федотова Анна Даниловна', '78757212237'),
    (24, 'Калинина Александра Романовна', '75967500367'),
    (25, 'Матвеева Екатерина Михайловна', '7017831707'),
    (26, 'Меркулов Алексей Артурович', '780014999863'),
    (27, 'Соколов Александр Семёнович', '71460451649'),
    (28, 'Юдин Максим Русланович', '78027088091'),
    (29, 'Борисова Виктория Тимофеевна', '78046738203'),
    (30, 'Федоров Савелий Кириллович', '7581336138'),
    (31, 'Бурова Полина Михайловна', '7189980471'),
    (32, 'Полякова Оливия Эмильевна', '757699991476'),
    (33, 'Прохорова Полина Артёмовна', '71922044933'),
    (34, 'Соловьева Марианна Богдановна', '724493430499'),
    (35, 'Михайлова Алёна Георгиевна', '78187576709'),
    (36, 'Нестерова София Тимуровна', '753888002065'),
    (37, 'Соловьев Даниил Эмирович', '79594375242'),
    (38, 'Сергеева Айша Андреевна', '729433811680'),
    (39, 'Лавров Георгий Григорьевич', '782854423377'),
    (40, 'Игнатов Фёдор Никитич', '7395685113'),
    (41, 'Егорова Анна Антоновна', '79462641927'),
    (42, 'Дубова Алиса Александровна', '76195676962'),
    (43, 'Федорова Виктория Матвеевна', '73001491968'),
    (44, 'Смирнов Тимофей Дмитриевич', '7332519228'),
    (45, 'Федоров Артём Романович', '77515861162'),
    (46, 'Федоров Александр Максимович', '78655287611'),
    (47, 'Иванова Кристина Степановна', '772807433578'),
    (48, 'Александров Никита Матвеевич', '73942099694'),
    (49, 'Виноградова Вера Савельевна', '782504773830'),
    (50, 'Ковалев Иван Сергеевич', '7634218268');

    SQL
    CREATE TABLE cars
    (
    id_car SERIAL NOT NULL PRIMARY KEY,
    car VARCHAR(40) NOT NULL,
    pts INTEGER NOT NULL
    );

    INSERT INTO cars
    VALUES
    (1, 'Audi Q3', '451347'),
    (2, 'Audi Q5', '473848'),
    (3, 'Audi Q7', '648930'),
    (4, 'Audi 80', '182542'),
    (5, 'Audi 100', '603827'),
    (6, 'Bentley Continental', '953115'),
    (7, 'BMW 7 F01', '334595'),
    (8, 'BMW 5 GT F07', '733287'),
    (9, 'BMW 5 F10', '183758'),
    (10, 'BMW 1 F20', '795151'),
    (11, 'BMW 3 F30', '489837'),
    (12, 'BMW 3 e36 ', '548573'),
    (13, 'Dodge Grand ', '186607'),
    (14, 'Dodge Neon ', '292134'),
    (15, 'Dodge Stratus ', '845484'),
    (16, 'Dodge RAM ', '625442'),
    (17, 'FIAT Albea', '166281'),
    (18, 'FIAT GRANDE PUNTO 5D', '878270'),
    (19, 'FORD S-MAX', '163140'),
    (20, 'FORD Explorer ', '395542'),
    (21, 'FORD Fiesta ', '914166'),
    (22, 'FORD Focus ', '958440'),
    (23, 'FORD Fusion', '415550'),
    (24, 'FORD Kuga ', '846001'),
    (25, 'FORD Mondeo ', '691162'),
    (26, 'FORD RANGER ', '208253'),
    (27, 'FORD Transit', '594644'),
    (28, 'Great Hall Hover H3, H5', '215389'),
    (29, 'Honda Accord ', '726022'),
    (30, 'Honda Civic 4D', '543712'),
    (31, 'Honda CR-V ', '497202'),
    (32, 'Honda CR-V ', '405780'),
    (33, 'Honda JAZZ', '415798'),
    (34, 'Honda Pilot ', '459924'),
    (35, 'Honda Stream ', '869854'),
    (36, 'Hyundai Accent ', '680118'),
    (37, 'Hyundai Elantra ', '359018'),
    (38, 'Hyundai Gets', '674829'),
    (39, 'Hyundai Starex', '723287'),
    (40, 'Hyundai Santa Fe', '707986'),
    (41, 'Hyundai Tucson', '895826'),
    (42, 'HUMMER H2', '443587'),
    (43, 'HUMMER H3', '820371'),
    (44, 'Infiniti M ', '459878'),
    (45, 'Infiniti FX ', '186290'),
    (46, 'Infiniti Q50 ', '855056'),
    (47, 'Infiniti QX', '330482'),
    (48, 'Jaguar X-Type', '895121'),
    (49, 'Jaguar XJ', '174586'),
    (50, 'Jaguar XF ', '850235'),
    (51, 'Mitsubishi Pajero Sport 1', '385398'),
    (52, 'Mitsubishi Pajero Sport 2', '500995'),
    (53, 'Nissan Juke', '238620'),
    (54, 'Nissan Teana ', '924492'),
    (55, 'Nissan Tiida 5D', '759081'),
    (56, 'Nissan Tiida ', '627380'),
    (57, 'Nissan Maxima ', '379438'),
    (58, 'Nissan Murano ', '682395'),
    (59, 'Nissan Navara ', '612894'),
    (60, 'Nissan Pathfinder ', '155605'),
    (61, 'Nissan Patrol ', '502495'),
    (62, 'Nissan Primera ', '343830'),
    (63, 'Nissan Qashqai ', '576631'),
    (64, 'Nissan Serena ', '629791'),
    (65, 'Nissan Terrano ', '844894'),
    (66, 'Renault Duster', '480463'),
    (67, 'Nissan X-TRAIL T30', '965413'),
    (68, 'Nissan X-TRAIL T31', '333523'),
    (69, 'Nissan Almera Classic', '323029'),
    (70, 'Nissan Almera G11', '796400'),
    (71, 'Opel Antara', '630375'),
    (72, 'Opel Astra G', '556226'),
    (73, 'Opel Astra H ', '870888'),
    (74, 'Opel Insignia', '933706'),
    (75, 'Opel Vectra C', '146337'),
    (76, 'Opel Zafira A', '141608'),
    (77, 'Peugeot 107 ', '646703'),
    (78, 'Peugeot 207 ', '119445'),
    (79, 'Peugeot 301', '464247'),
    (80, 'Peugeot 308 ', '875377'),
    (81, 'Peugeot 308 ', '690051'),
    (82, 'Peugeot 3008', '741557'),
    (83, 'Peugeot 4007', '559254'),
    (84, 'Subaru Forester ', '185939'),
    (85, 'Subaru Impreza', '823896'),
    (86, 'Subaru Legacy ', '422235'),
    (87, 'Subaru Outback ', '176320'),
    (88, 'Subaru XV', '847231'),
    (89, 'Suzuki Grand Vitara (5D)', '165896'),
    (90, 'Suzuki Jimny', '972988'),
    (91, 'Suzuki Liana', '955368'),
    (92, 'Toyota Alpard', '976908'),
    (93, 'Toyota Camry V20', '336677'),
    (94, 'Toyota Camry V30', '576288'),
    (95, 'Toyota Camry V40', '444050'),
    (96, 'Toyota Camry V50', '525090'),
    (97, 'Toyota Corolla E150', '462796'),
    (98, 'Toyota Corolla E160', '701742'),
    (99, 'Toyota LC 100', '660344'),
    (100, 'Toyota Prado LC120', '572336');

    SQL
    CREATE TABLE numbers
    (
    id_num SERIAL NOT NULL PRIMARY KEY,
    num VARCHAR(10) NOT NULL,
    region INTEGER NOT NULL
    );

    INSERT INTO numbers
    VALUES
    (1, 'А775ВО', '47'),
    (2, 'Р523ЕВ', '147'),
    (3, 'В124КК', '41'),
    (4, 'О858ВН', '47'),
    (5, 'А224МТ', '147'),
    (6, 'Т313ХВ', '41'),
    (7, 'М077АО', '47'),
    (8, 'В557УВ', '147'),
    (9, 'М680УМ', '41'),
    (10, 'Х341ВЕ', '47'),
    (11, 'Р722АС', '147'),
    (12, 'К841АО', '41'),
    (13, 'С052РЕ', '47'),
    (14, 'А044НА', '147'),
    (15, 'А833ХУ', '41'),
    (16, 'А840ТУ', '47'),
    (17, 'Е568УА', '147'),
    (18, 'Н822МХ', '41'),
    (19, 'Т817РВ', '47'),
    (20, 'Е259КА', '147'),
    (21, 'У262ТА', '41'),
    (22, 'С599ХР', '47'),
    (23, 'Е956КВ', '147'),
    (24, 'Н561ВО', '41'),
    (25, 'Р349НВ', '47'),
    (26, 'Р184НР', '147'),
    (27, 'Е415УС', '41'),
    (28, 'Н032ВК', '47'),
    (29, 'Х268НК', '147'),
    (30, 'Е990ВУ', '41'),
    (31, 'Х631КМ', '47'),
    (32, 'У293МУ', '147'),
    (33, 'В406ЕТ', '41'),
    (34, 'Т710ВЕ', '47'),
    (35, 'С330СХ', '147'),
    (36, 'У065АМ', '41'),
    (37, 'А129КВ', '47'),
    (38, 'Е594ВС', '147'),
    (39, 'Т597МВ', '41'),
    (40, 'Н088ВР', '47'),
    (41, 'В979ХМ', '147'),
    (42, 'В375НЕ', '41'),
    (43, 'Х552ВВ', '47'),
    (44, 'О132ХЕ', '147'),
    (45, 'С892РХ', '41'),
    (46, 'А343АА', '47'),
    (47, 'У333РО', '147'),
    (48, 'М595ВН', '41'),
    (49, 'С617СМ', '47'),
    (50, 'К523НМ', '147'),
    (51, 'М945ОМ', '41'),
    (52, 'Х342ЕУ', '47'),
    (53, 'Р084АХ', '147'),
    (54, 'М805ХК', '41'),
    (55, 'О856КМ', '47'),
    (56, 'В709УО', '147'),
    (57, 'М758СУ', '41'),
    (58, 'Е953АК', '47'),
    (59, 'В634ВХ', '147'),
    (60, 'В515ХТ', '41'),
    (61, 'У761ВС', '47'),
    (62, 'К630УМ', '147'),
    (63, 'М395ВВ', '41'),
    (64, 'У423УМ', '47'),
    (65, 'Х504УТ', '147'),
    (66, 'Е620ХК', '41'),
    (67, 'Р926ВТ', '47'),
    (68, 'К485ХР', '147'),
    (69, 'В328РС', '41'),
    (70, 'М890МР', '47'),
    (71, 'Т942СА', '147'),
    (72, 'К886РК', '41'),
    (73, 'В381ХУ', '47'),
    (74, 'К119НХ', '147'),
    (75, 'Х618НЕ', '41'),
    (76, 'Х465ВЕ', '47'),
    (77, 'Т652КС', '147'),
    (78, 'К450ВА', '41'),
    (79, 'Р231ВА', '47'),
    (80, 'К856МН', '147'),
    (81, 'С765МР', '41'),
    (82, 'М863ТЕ', '47'),
    (83, 'Т066РК', '147'),
    (84, 'О400ВУ', '41'),
    (85, 'У274ТЕ', '47'),
    (86, 'У912ОТ', '147'),
    (87, 'Р181ЕВ', '41'),
    (88, 'С304НЕ', '47'),
    (89, 'Х476РН', '147'),
    (90, 'Х766АР', '41'),
    (91, 'С373ОЕ', '47'),
    (92, 'О241АВ', '147'),
    (93, 'С595ЕХ', '41'),
    (94, 'Е908ВВ', '47'),
    (95, 'Н287АУ', '147'),
    (96, 'А199ТМ', '41'),
    (97, 'М261ХН', '47'),
    (98, 'А974НЕ', '147'),
    (99, 'К609ВХ', '41'),
    (100, 'Н339АУ', '47');

    SELECT *
    FROM numbers
     
Top