2016-07-26 10 views
0

Ich verwende Inhaltsanbieter, um Daten in SQLite zu speichern und Cursor-Adapter zu verwenden, um Daten in meiner ListView anzuzeigen. Ich habe 3 TabellenMehrere Verknüpfungen mit SQLiteQueryBuilder

1) Leads- [_id, Name, ....]

2) LeadsAttachment- [_id, Format, LeadId, ....] (LeadId ist FK _ID PK von Leads Tabelle)

3) LeadsProduct- [_id, pname, LeadId, ....] (LeadId ist FK PK von Leads Tabelle)

uptill nun _ID i ausführte zwischen den Leitungen und LeadsAttachment LEFT JOIN Verwenden von SQLQueryBuilder wie folgt

SQLiteQueryBuilder leadsWithAttachmentQueryBuilder = new SQLiteQueryBuilder(); 
leadsWithAttachmentQueryBuilder.setTables(
      MBenzContracts.LeadsEntry.TABLE_NAME + " LEFT JOIN " + 
        MBenzContracts.LeadAttachmentEntry.TABLE_NAME + 
        " ON " + MBenzContracts.LeadAttachmentEntry.TABLE_NAME + 
        "." + MBenzContracts.LeadAttachmentEntry.COLUMN_Lead_ID + 
        " = " + MBenzContracts.LeadsEntry.TABLE_NAME + 
        "." + MBenzContracts.LeadsEntry._ID); 

Wie werde ich 2 links ausführen tritt in SQLiteQueryBuilder zusammen, so dass ich alle Datensätze aus Leads zusammen mit LeadsAttachment und LeadsProduct

Antwort

0

gemustert es raus, es ist sehr einfach

leadsWithProductAndAttachmentQueryBuilder.setTables(
      MBenzContracts.LeadsEntry.TABLE_NAME + " LEFT JOIN " + 
        MBenzContracts.LeadProductEntry.TABLE_NAME + 
        " ON " + MBenzContracts.LeadProductEntry.TABLE_NAME + 
        "." + MBenzContracts.LeadProductEntry.COLUMN_Lead_ID + 
        " = " + MBenzContracts.LeadsEntry.TABLE_NAME + 
        "." + MBenzContracts.LeadsEntry._ID + " LEFT JOIN " + 
        MBenzContracts.LeadAttachmentEntry.TABLE_NAME + 
        " ON " + MBenzContracts.LeadAttachmentEntry.TABLE_NAME + 
        "." + MBenzContracts.LeadAttachmentEntry.COLUMN_Lead_ID + 
        " = " + MBenzContracts.LeadsEntry.TABLE_NAME + 
        "." + MBenzContracts.LeadsEntry._ID); 
Verwandte Themen