[英]SQL inner join two tables with the same column names
我有两个表,列数可变。 (我不知道有多少列或有什么名称)例如表A和表B.
表A:
ID | B_ID | {variable}
表B
ID | {variable}
查询:
SELECT TableA.*, TableB.* FROM TableA INNER JOIN TableB ON TableA.B_ID= TableB.id;
当TableA和TableB都具有相同名称的列时,我无法区分两个不同的列。 例如,两个表都有“Name”列,此查询将导致:
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”关键字,但问题是我不知道列名将是什么。 (我不知道TableA或TableB是否会有列Name)
所以我的问题是
当表可能具有相同的列名时,如何使用INNER JOIN区分两个表之间的列?
我正在使用SQLite3。
您的结果集(给定您的查询)应该具有所有TableA列,后跟所有TableB列,因此当您到达第二个ID
列时,您知道您已进入TableB数据。
那就是说,你从两张桌子中查询所有关于你在功能上没有任何意义的数据,这对我来说似乎很奇怪......
这无疑是一个黑客解决方案,但是这个:
SELECT TableA.*, "#", TableB.*
FROM TableA INNER JOIN TableB ON TableA.B_ID= TableB.id;
将生成一个结果列表,该列表将分为两列,即#列的左侧和右侧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.