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

    [MYSQL] Select annidate

    Ciao a tutti,

    mi trovo in difficoltà con una query a MYSQL mi potete dare una mano?

    Vi dico quello che voglio fare. Ho la tabella task:

    task (idtask, nome_task, id_taskparent, stato_task)


    dove:

    idtask= chiave primaria identificativa del task
    nome_task = nome del task
    id_taskparent = id del task padre
    stato_task = 1 o 0 per indicare se attivo o non attivo


    Questa tabella è una struttura ricorsiva fatta per la adjacencylist per avere una struttura ad albero dentro la tabella.


    Voglio trovare idtask e nome_task di tutti i nodi foglia (cioè che non hanno figli) che sono attivi (cioè stato_task==1).

    Io avevo pensato una cosa del genere:

    SELECT idtask, nome_task
    FROM task AS t1
    WHERE stato_task==1 AND
    (
    SELECT *
    FROM task AS t2
    WHERE t1.idtask!=t2.id_taskparent
    )

    Cioè devo controllare che l'id della tupla che esamino non compaia nel campo id_taskparent di tutto la tabella. Se ciò accade allora siamo di fronte a un nodo foglia.

    Secondo voi è corretta?? Ci sono errori di sintassi?

    ringrazio in anticipo tutti per vostro aiuto!!!
    **Non voltarti due volte, la strada è avanti**

  2. #2
    Quella query se la leggi con più attenzione non ha senso: che vorrebbe dire quella clausola WHERE?

    codice:
    SELECT idtask, nome_task
    FROM task AS t1
    WHERE stato_task==1 AND idtask NOT IN 
    (
        SELECT id_taskparent
        FROM task
    )
    questo ha molto più senso...ma ovviamente i due campi devono essere dello stesso tipo.
    Administrator of NAMDesign.Net

  3. #3
    In effetti c'hai ragione adesso mi torna. Si i campi sono dello stesso tipo!

    Grazie mille!!!
    **Non voltarti due volte, la strada è avanti**

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.