Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [MYSQL] Query SQL

  1. #1

    [MYSQL] Query SQL

    Salve.
    Ho un problemino, avendo le tabelle strutturate in questo modo:
    codice:
    CREATE TABLE IF NOT EXISTS `server_list` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `address` varchar(50) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
    codice:
    CREATE TABLE IF NOT EXISTS `proxy_list` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `address` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
    codice:
    CREATE TABLE IF NOT EXISTS `players` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `id_server` int(11) unsigned NOT NULL,
    `id_proxy` int(10) unsigned NOT NULL,
    PRIMARY KEY (`id`) )
    ENGINE=MyISAM  DEFAULT CHARSET=latin1;
    Dovrei creare una query che recupera i proxy ma solo che non sia occupato da un player per un determinato server.

    Ecco un esempio di record:
    codice:
    INSERT INTO `server_list` (`id`, `address`) VALUES
    (1, '125.41.4.88'),
    (2, '125.25.14.1');
    
    INSERT INTO `proxy_list` (`id`, `address`) VALUES
    (1, '87.1.25.1'),
    (2, '81.45.150.117');
    
    INSERT INTO `players` (`id`, `id_server`, `id_proxy`) VALUES
    (1, 1, 1, '87.1.25.1'),
    (2, 2, 1, '81.45.150.117');
    Da questi record, la query mi devi restituire il proxy con id 2.

    C'è un modo di fare questo con SQL?
    Se si, mi potete aiutare?
    Grazie

  2. #2
    qui

    INSERT INTO `players` (`id`, `id_server`, `id_proxy`) VALUES
    (1, 1, 1, '87.1.25.1'),
    (2, 2, 1, '81.45.150.117');

    c'è qualcosa che non va: 3 colonne, 4 valori...

  3. #3
    Originariamente inviato da optime
    qui

    INSERT INTO `players` (`id`, `id_server`, `id_proxy`) VALUES
    (1, 1, 1, '87.1.25.1'),
    (2, 2, 1, '81.45.150.117');

    c'è qualcosa che non va: 3 colonne, 4 valori...
    Scusate, ultimo valore non valido
    Dovrebbe essere così:
    codice:
    INSERT INTO `players` (`id`, `id_server`, `id_proxy`) VALUES
    (1, 1, 1),
    (2, 2, 1);

  4. #4
    quindi hai

    server_list
    id,address
    1, 125.41.4.88
    2, 125.25.14.1

    proxy_list
    id,address
    1, 87.1.25.1
    2, 81.45.150.117

    players
    id, id_server, id_proxy
    1, 1, 1
    2, 2, 1

    la più facile

    select * from proxy where id not in (select distinct id_proxy from players)

  5. #5
    Originariamente inviato da optime
    la più facile

    select * from proxy where id not in (select distinct id_proxy from players)
    Ok, ma in questo modo recuperi Proxy che non sia in uso da tutti player.
    A me servirebbe invece recuperare Proxy che non sia in uso da player per un determinato server.

    Ricordo che le tabelle sono collegate fra loro in questo modo:
    players.id_server <=> server_list.id
    players.id_proxy <=> proxy_list.id

    Quindi nella tua query ci vorrebbe ancora aggiungere in qualche modo un WHERE server_list.address != '125.41.4.88'

  6. #6
    aggiungi pure, non ci sono leggi che te lo impediscano. per ora.

  7. #7
    Grazie 1000 dell'aiuto...

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.