Cuestión : Selección de MySQL IFNULL ()

Cuando selecciono datos a partir de dos tablas donde un valor existe en las columnas en ambas tablas puedo apenas utilizar el método de IFNULL para seleccionar el value.

IFNULL (u.id, m.user_id) COMO user_id <--- Este works

but cuando el valor existe solamente en una de las tablas yo no puede. el

IFNULL (m.usergroup_id) COMO usergroup_id <---- Esto no hace el work

usergroup_id <---- Esto trabaja pero la FALTA DE INFORMACIÓN es returned
m.usergroup_id <---- ¿Esto trabaja pero la FALTA DE INFORMACIÓN es el returned

How debe yo selecciona la identificación del grupo de usuarios cuando existe solamente en una de las tablas?
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
>SELECT notpretty u.name, u.username, u.email, IFNULL (u.id, m.user_id) " del class= " del id= " codeSnippet755936 del
           
class= del

Respuesta : Selección de MySQL IFNULL ()

Lo que sigue es mi solución:
1- Crear un TreeItemRenderer de encargo como sigue:

RadioButtonTreeItemRenderer.as
_________________________________________________
paquete
{
      importación flash.events. Acontecimiento;
      
      importación mx.controls.RadioButton;
      importación mx.controls.RadioButtonGroup;
      importación mx.controls.treeClasses.*;

      la clase pública RadioButtonTreeItemRenderer amplía TreeItemRenderer
      {
            público var RadioBtn: RadioButton;
            público var RadioBtnGR: RadioButtonGroup
        itemXml público del var: XML;

            función pública RadioButtonTreeItemRenderer ()
            {
                  estupendo ();
                  mouseEnabled = falso;
            }


            datos determinados de la función pública de la invalidación (valor: Objeto): vacío {
            ¡si (valor! = falta de información) {
                super.data = valor;
               
                this.itemXml = XML (valor);
                si (== de this.itemXml.@checked verdad) {
                    this.RadioBtn.selected = verdad;
                } {
                    this.RadioBtn.selected = falso;
                }
            }
        }
        la función protegida invalidación createChildren (): vacío {
            super.createChildren ();
            RadioBtn = nuevo RadioButton ();
            RadioBtnGR = nuevo RadioButtonGroup ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        updateDisplayList protegido invalidación de la función (unscaledWidth: Número, unscaledHeight: Número): vacío {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            si (super.data) {
                tld del var: TreeListData = TreeListData (super.listData);

                si (tld.hasChildren) {
                    this.RadioBtn.visible = falso;
                } {
                    this.RadioBtn.visible = verdad;
                }
                si (RadioBtn.visible) {
                    this.RadioBtn.x = super.label.x
                    super.label.x = this.RadioBtn.x + 17;
                    this.RadioBtn.y = super.label.y+8;
                }
            }
        }
      
      
}
}

________________________________________

2- el código de uso es:

backgroundColor= " #FFFFFF " de http://www.adobe.com/2006/mxml " >

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              importación mx.collections.ArrayCollection;
                  importación mx.rpc.events.ResultEvent;
                  importación mx.controls. Alarma;


                  función privada TreeClickHandler (acontecimiento: Acontecimiento): vacío
                  {
                        selectedXmlList del var: XMLList;
                        itemObject del var: Objeto = event.currentTarget.selectedItem;

                        ¡si (! myTree.dataDescriptor.isBranch (itemObject)) {
                              selectedXmlList = myData.item.part. (== itemObject.@parentid del @parentid);
                              processSelection (selectedXmlList, itemObject.@id);
                        }

                  }

                  processSelection privado de la función (lista: XMLList, Objid: Secuencia): vacío {
                        artículo del var: XML;
                        para cada uno (artículo en lista) {
                              ¡si (item.@id! =Objid)
                              {
                                    item.@checked = falso;
                              }
                              {
                                    item.@checked = verdad;
                              }
                        }
                  }

            ]] >
      



      
                                     id= " myTree "  
                         itemClick= " TreeClickHandler (acontecimiento) “      
                         itemRenderer= " RadioButtonTreeItemRenderer "
                         showRoot= " falso "
                         width= " 100% "  
                         height= " 100% "
                         labelField= " @label "                                            
                         folderClosedIcon= " {falta de información} “
                         folderOpenIcon= " {falta de información} “
                         defaultLeafIcon= " {falta de información} “
                         dataProvider= " {myData} “
                         openItems= " {myData. .item} “>
            


      



Otras soluciones  
 
programming4us programming4us