如何在sqlite android中加入两个表?

时间:2016-12-14 09:27:53

标签: android sqlite

我有一个两个表一个是旅行而另一个是在这两个表中调用我有一个常见的字段事件id基于该id需要获取两个表值我该怎么做。现在让我详细解释一下我的问题

这是我的旅行表:

ID  INCIDENT_ID Lat  Long   Time
--  ----------- ---  ----   -----
1     2         13.2 13.5   13456 

这是我的电话表:

ID  INCIDENT_ID  DESC   START    END 
--  -----------  ----   -----    ---
1       2         test   23      33

现在如何加入这两个表到目前为止我所尝试的是查询:

  String visitquery = "SELECT   " +  VisitModel.INCIDENT_ID + ","  +  VisitModel.DESC +  " ,"  + VisitModel.Visit_START + " ," + VisitModel.Visit_END  + " , "+ VisitModel.Visit_TRAVELAT  +  " , " +  VisitModel.Visit_TRAVEL_LONG + " FROM " + VisitModel.CALL_TABLE + " LEFT OUTTER JOIN " + VisitModel.Visit_TravelTable
                + " ON " + VisitModel.Visit_IncidentID  + " = " + VisitModel.Visit_TravelIncidentID
                + " WHERE " + VisitModel.Visit_IncidentID + " = " +  id;

我没有从旅行表中获得结果如何实现这一目标还有其他方法。

3 个答案:

答案 0 :(得分:0)

VisitModel.Visit_IncidentID和VisitModel.Visit_TravelIncidentID的字符串值是什么?

请注意,两个表中的列名都相同。 打印此查询并检查是否有类似

的内容
    ...ON INCIDENT_ID = INCIDENT_ID ...

答案 1 :(得分:0)

更新

如果您需要所有字段,请尝试使用此查询

components/codeEditor/vendor

如果您需要特定的列

"SELECT * FROM travel JOIN call ON travel.ID= call.ID"

如果您需要ID

"SELECT travel.Lat,call.START FROM travel JOIN call ON travel.ID= call.ID"

实施例

 "SELECT travel.Lat,call.START FROM travel JOIN call ON travel.ID= call.ID WHERE travel.ID='"+id_value+"'";

这将起作用tests.travel和call是两个不同的表名*。

答案 2 :(得分:-1)

你走了。这是base things about joins 以及如何使用rawQuery

在您的应用中完成此操作