Visualizzazione dei risultati da 1 a 2 su 2

Visualizzazione discussione

  1. #1

    [MySql] [RISOLTO] Join tra due tabelle

    Buongiorno , ho una tabella Hardware :

    codice:
    CREATE TABLE `hw` (
      `id` int NOT NULL AUTO_INCREMENT,
      `id_tipo_hw` int NOT NULL,
      `id_luogo` int NOT NULL,
      `descrizione` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `numero_telefono` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'solo per sim',
      `pin` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'solo per sim',
      `puk` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'solo per sim',
      `contratto` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `seriale` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `cespite` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `marca` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `modello` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `enrollment` tinyint(1) DEFAULT NULL,
      `data_enrollment` date DEFAULT NULL,
      `data_acquisto` date DEFAULT NULL,
      `os` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `mac_address` varchar(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `id_stato_hw` int DEFAULT NULL,
      `numero_ipad` tinyint unsigned DEFAULT NULL COMMENT 'Solo Ipad',
      `created_at` datetime NOT NULL,
      `updated_at` datetime DEFAULT NULL,
      `deleted_at` datetime DEFAULT NULL,
      `ip` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Solo per dispositivi in rete',
      PRIMARY KEY (`id`,`id_tipo_hw`,`id_luogo`),
      KEY `fk_hw_tipo_hw` (`id_tipo_hw`),
      KEY `id_stato_hw` (`id_stato_hw`),
      KEY `id_luogo` (`id_luogo`),
      CONSTRAINT `hw_ibfk_4` FOREIGN KEY (`id_stato_hw`) REFERENCES `stato_hw` (`id`),
      CONSTRAINT `hw_ibfk_5` FOREIGN KEY (`id_tipo_hw`) REFERENCES `tipo_hw` (`id`),
      CONSTRAINT `hw_ibfk_6` FOREIGN KEY (`id_luogo`) REFERENCES `luogo` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    ed una tabella hardware dipendenti che mi serve per lo storico :


    codice:
    CREATE TABLE `hw_dipendenti` (
      `id` int NOT NULL AUTO_INCREMENT,
      `id_dipendenti` int NOT NULL,
      `id_hw` int NOT NULL,
      `data_inizio` date DEFAULT NULL,
      `data_fine` date DEFAULT NULL,
      `note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `created_at` datetime NOT NULL,
      `updated_at` datetime DEFAULT NULL,
      `deleted_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`,`id_dipendenti`,`id_hw`),
      KEY `fk_tipo_hw_copy1_dipendenti1` (`id_dipendenti`),
      KEY `fk_tipo_hw_copy1_hw1` (`id_hw`),
      CONSTRAINT `fk_tipo_hw_copy1_dipendenti1` FOREIGN KEY (`id_dipendenti`) REFERENCES `dipendenti` (`id`),
      CONSTRAINT `fk_tipo_hw_copy1_hw1` FOREIGN KEY (`id_hw`) REFERENCES `hw` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    Quando tolgo un hardware al dipendente (senza assegnarlo ad un altro setto il campo deleted_at con l'orario di cessazione, per rivedere tutta la lista eseguo questo sql :

    codice:
    SELECT `hw`.*, `dipendenti`.`nome` as `nome_dipendente`, `dipendenti`.`cognome` as `cognome_dipendente`
    FROM `hw`
    LEFT JOIN `hw_dipendenti` ON `hw_dipendenti`.`id_hw`=`hw`.`id`
    LEFT JOIN `dipendenti` ON `hw_dipendenti`.`id_dipendenti`=`dipendenti`.`id`
    WHERE `id_tipo_hw` = '17'
    AND `hw_dipendenti`.`deleted_at` IS NULL
    AND `hw`.`deleted_at` IS NULL
    Ma in questo modo perdo l'hardware tolto al dipendente , come faccio a mantenere lo storico e contemporaneamente avere la lista completa ?
    Immagini allegate Immagini allegate
    Ultima modifica di pippuccio76; 19-02-2024 a 10:25 Motivo: risolto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.