Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [mysql] query nitidificata sulla stessa tabella?

    allora ragazzi sto provando questa query:

    SELECT * FROM myTable WHERE col1 = -1 AND myColValue IN (SELECT myColValue FROM myTable WHERE col1 = 1)

    ma non va.. o meglio si blocca mysql e non fa più nulla... non capisco perchè, e soprattutto non so cosa devo fare per capire se c'è qualche errore.


    questa tabella conteine solo 10.000 record e oltre tutto sto in locale quindi è impossibile che ci metta tutto sto tempo.

    tra l'atlro ho provato ad aggiungere anceh un LIMIT 10 alla fine è lo stesso riamane tutto il tempo in elaborazione

    Versione MySQL: 5.1.41

    vi faccio un piccolo esempio della query:

    codice:
    col1 | myColValue
    -1       aaa
    -1       bbb
    -1       ccc
    1        bbb
    1         dddd
    la query deve ritornare la quarta riga...

    perchè bbb ha sia -1 che 1 sulla col1

    grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non sono sicurissimo di aver capito ma ci provo.

    codice:
    select m1.* from mytable as m1
    inner join
    (select mycolvalue 
    from mytable
    group by mycolvalue
    having count(distinct(col1)) = 2) as m2
    on m1.mycolvalue = m2.mycolvalue and m1.col1 = 1

  3. #3
    sembra funzionare grazie! ora controllo meglio

    devo imparare queste dannate inner join!

    cmq sai trovare un motivo per il quale la mia subquery non va ? =/

  4. #4
    perfetto.. provato anche ad incrociare i dati con uno script php che estraeva li stessi dati.



    però vorrei verificare meglio l'esattezza dei dati mi servirebbe uan cosa.

    è possibile mostrare tutti i record in maniera che myColValue sia una stringa simile ad un'altra in maniera decrescente?

    cioè mi spiego:


    tab:

    myColValue
    -----------------
    aaaaaaaaaaaaaaa
    asdhaahdiashndi
    aaaaaaaaaaaaaab
    aaaaaaaaaaaaaac
    aaaaaaaaaaaaaad
    asduhmaosdhaois
    asduasimdasiod
    bbbbbbbbbbbbbb
    bbbbbbbbbbbbba



    considera quella semplice tabella la query mi dovrebbe restituire una cosa del genere:

    aaaaaaaaaaaaaaa
    aaaaaaaaaaaaaab
    aaaaaaaaaaaaaac
    aaaaaaaaaaaaaad

    bbbbbbbbbbbbbb
    bbbbbbbbbbbbba

    asduhmaosdhaois
    asduasimdasiod
    asdhaahdiashndi



    (ho aggiunto lo spazio giusto per far capire)

    praticametne dovrebbe mostrarmi i record in maniera che abbiamo la più lunga sottosequenza comune quel campo.

    so che è un'operazione abbastanza complessa da calcolare per ogni record infatti mi serve solo in locale.


    grazie come sempre!

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.