我有两个表具有可变数量的列。 (我不知道有名称将有多少列或什么是),例如表A和B表SQL内部连接具有相同列名的两个表
表A:
ID | B_ID | {variable}
表B
ID | {variable}
查询:
SELECT TableA.*, TableB.* FROM TableA INNER JOIN TableB ON TableA.B_ID= TableB.id;
当TableA和TableB都有一个同名的列时,我无法区分这两个不同的列。例如,两个表的列都有“名称”列,则此查询会导致:
ID | ID | B_ID | NAME | NAME |
1 | 35 | 35 | bob | jim |
我在寻找的是区分这两个表的方法。最好用列表名称来表示列名。
TableA_ID | TableB_ID | TableA_B_ID | TableA_NAME | TableB_NAME |
1 | 35 | 35 | bob | jim |
我知道“AS”关键字,但问题是我不知道列名将在什么位置出现。 (我不知道,如果表A表B或将有列名)
所以我的问题是
你如何区分这两个表之间的列与INNER JOIN时,表可能有相同的列名?
我正在使用SQLite3。
听起来像某种时髦的动态SQL,可能会查询用户在运行时生成的表。 – FrustratedWithFormsDesigner 2010-07-29 18:00:42
同意,如果您不知道列名称,那么您的设计有一些主要错误。 Select语句不应该使用select *,列名应该在连接中指定,尤其是在同一列返回两次的连接中,这会浪费服务器资源。 – HLGEM 2010-07-29 18:01:35
如果表正在创建,他们有列名可以捕获然后,虽然... – AllenG 2010-07-29 18:02:15