gpt4 book ai didi

android - SQLite 外键从另一个表获取值

转载 作者:行者123 更新时间:2023-11-29 21:42:44 28 4
gpt4 key购买 nike

所以我有 3 个表:

供应商:_ID描述

阿尔马森:_ID描述

出租车_ID描述鳕鱼供应商鳕鱼_阿尔马森 外键(cod_provedor) 引用资料provedores(_id) 外键(cod_almacen)引用 almacenes(_id)

当我执行此查询时:

                 c = db.rawQuery(
" SELECT "
+ "a."+KEY_ROWID + " AS _id,"
+ "a.cod_agencia AS cod_agencia" + ","
+ "a.fecha AS fecha" + ","
+ "b.descripcion AS cod_proveedor" + ","
+ "c.descripcion AS cod_almacen" + ","
+ "a.estado AS estado" + ""
+ " FROM "
+ "cab_ings a, proveedores b, almacenes c"
+" WHERE a.cod_proveedor = b._id AND a.cod_almacen = c._id",null);

它不显示任何内容,但当我偶然将“b._id”设置为“0”时,它会显示。我不知道为什么,但我认为是引用问题。

编辑:

我想要两个表的值(描述),这就是为什么我使用传统查询 a.id1 -> b.id AND a.id2 -> b.id

供应商表

ID      descripcion
1 R*1005
2 R*10335

阿尔玛森表

ID      descripcion
3 a*10
6 a*12

出租车表

ID      cod_proveedor   cod_almacen
1 1 3
2 2 3

最佳答案

这可能与您引用 ProveedorAlmacen 表的主键的方式有关。在示例 DDL 中,该字段名为 ID,但在联接中存在对 _id 字段的引用。 (这可能是指 select 中的别名吗?)

我创建了下表:

CREATE TABLE "Proveedor" ("ID" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "descripcion" VARCHAR)

CREATE TABLE "Almacen" ("ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "descripcion" VARCHAR)

CREATE TABLE "Cab_ing" ("ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "cod_proveedor" INTEGER, "cod_almacen" INTEGER)

...并随后插入您在上面指定的相同测试数据。使用此查询:

select 
cab.ID as _id,
pro.descripcion as cod_proveedor,
alm.descripcion as cod_almacen
from
Cab_ing cab
inner join Proveedor pro on cab.cod_proveedor = pro.ID
inner join Almacen alm on cab.cod_almacen = alm.ID

...我返回两行:

  1. ID=1、cod_proveedor=1、cod_almacen=3
  2. ID=1、cod_proveedor=2、cod_almacen=3

关于android - SQLite 外键从另一个表获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364693/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com