Frage : MySQL IFNULL () Vorwähler

Wenn ich Daten von zwei Tabellen vorwähle, in denen ein Wert in Spalten in beiden Tabellen existiert, kann ich die IFNULL Methode gerade anwenden, um das value.

IFNULL (u.id, m.user_id) ALS user_id vorzuwählen <--- Dieses works

but, wenn der Wert nur in einer der Tabellen ich existiert, kann nicht.

IFNULL (m.usergroup_id) ALS usergroup_id <---- Dieses tut nicht work

usergroup_id <---- Dieses arbeitet, aber NULL ist returned
m.usergroup_id <---- Dieses arbeitet, aber NULL ist returned

How sollte ich vorwählen die Benutzergruppeidentifikation, wenn sie nur in einer der Tabellen existiert?
1:
2:
3:
4:
SELECT u.name, u.username, u.email, IFNULL (u.id, m.user_id) ALS user_id
IFNULL (m.usergroup_id) ALS usergroup_id <--- Diese Linie arbeitet nicht
VON table1 ALS u
LINKS VERBINDEN table2 ALS m AUF u.id = m.user_id

Antwort : MySQL IFNULL () Vorwähler

Das folgende ist meine Lösung:
1- Ein kundenspezifisches TreeItemRenderer verursachen, wie folgt:

RadioButtonTreeItemRenderer.as
_________________________________________________
Paket
{
      Import flash.events. Ereignis;
      
      Import mx.controls.RadioButton;
      Import mx.controls.RadioButtonGroup;
      Import mx.controls.treeClasses.*;

      allgemeine Kategorie RadioButtonTreeItemRenderer verlängert TreeItemRenderer
      {
            Öffentlichkeit var RadioBtn: RadioButton;
            Öffentlichkeit var RadioBtnGR: RadioButtonGroup
        allgemeines var itemXml: XML;

            allgemeine Funktion RadioButtonTreeItemRenderer ()
            {
                  Super ();
                  mouseEnabled = falsch;
            }


            gesetzte Daten der allgemeinen Funktion der Übersteuerung (Wert: Gegenstand): Lücke {
            wenn (Wert! = Null) {
                super.data = Wert;
               
                this.itemXml = XML (Wert);
                wenn (this.itemXml.@checked == zutreffend) {
                    this.RadioBtn.selected = ausrichten en;
                } sonst {
                    this.RadioBtn.selected = falsch;
                }
            }
        }
        Übersteuerung geschützte Funktion createChildren (): Lücke {
            super.createChildren ();
            RadioBtn = neues RadioButton ();
            RadioBtnGR = neues RadioButtonGroup ();
           
           RadioBtn.group = RadioBtnGR;
           addChild (RadioBtn);
        }
        Übersteuerung geschütztes Funktion updateDisplayList (unscaledWidth: Zahl, unscaledHeight: Zahl): Lücke {
            super.updateDisplayList (unscaledWidth, unscaledHeight);
            wenn (super.data) {
                var tld: TreeListData = TreeListData (super.listData);

                wenn (tld.hasChildren) {
                    this.RadioBtn.visible = falsch;
                } sonst {
                    this.RadioBtn.visible = ausrichten en;
                }
                wenn (RadioBtn.visible) {
                    this.RadioBtn.x = super.label.x
                    super.label.x = this.RadioBtn.x + 17;
                    this.RadioBtn.y = super.label.y+8;
                }
            }
        }
      
      
}
}

________________________________________

2- Anwendungscode ist:

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

      
            

                  
                        
                        

                  


                  
                        
                        
                        
                        
                        
                  


                  
                        
                        
                  
 

            

      


      
                              Import mx.collections.ArrayCollection;
                  Import mx.rpc.events.ResultEvent;
                  Import mx.controls. Alarm;


                  private Funktion TreeClickHandler (Ereignis: Ereignis): Lücke
                  {
                        var selectedXmlList: XMLList;
                        var itemObject: Gegenstand = event.currentTarget.selectedItem;

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

                  }

                  privates Funktion processSelection (Liste: XMLList, Objid: Schnur): Lücke {
                        var-Einzelteil: XML;
                        für jedes (Einzelteil in der Liste) {
                              wenn (item.@id! =Objid)
                              {
                                    item.@checked = falsch;
                              } sonst
                              {
                                    item.@checked = ausrichten en;
                              }
                        }
                  }

            ]] >
      



      
                                     id= " myTree "  
                         itemClick= " TreeClickHandler (Ereignis) „      
                         itemRenderer= " RadioButtonTreeItemRenderer "
                         showRoot= " falsch "
                         width= " 100% "  
                         height= " 100% "
                         labelField= " @label "                                            
                         folderClosedIcon= " {Null} „
                         folderOpenIcon= " {Null} „
                         defaultLeafIcon= " {Null} „
                         dataProvider= " {myData} „
                         openItems= " {myData. .item} „>
            


      



Weitere Lösungen  
 
programming4us programming4us