Sqlite:合并从select返回的两列

Sqlite:合并从select返回的两列,sqlite,Sqlite,我需要以下场景的帮助 我有两张表,第一张(表a)是人的名单,第二张(表B)是城市的名单 TableA有一个名为city_id的列,该列引用TableB中的一个id 我正在使用以下查询: SELECT TableA.name,TableB.city,TableB.state FROM TableA LEFT JOIN TableB ON TableA.city_id=TableB.id; 结果查询有三列:名称、城市、州 是否可以只获取两列:名称、城市+州 我尝试了以下方法,但运气不佳: SELE

我需要以下场景的帮助

我有两张表,第一张(表a)是人的名单,第二张(表B)是城市的名单

TableA有一个名为city_id的列,该列引用TableB中的一个id

我正在使用以下查询:

SELECT TableA.name,TableB.city,TableB.state FROM TableA LEFT JOIN TableB ON TableA.city_id=TableB.id;
结果查询有三列:名称、城市、州

是否可以只获取两列:名称、城市+州

我尝试了以下方法,但运气不佳:

SELECT TableA.name,(`TableB.city` || ' ' || `TableB.state`) FROM TableA LEFT JOIN TableB ON TableA.city_id=TableB.id;

谢谢您的帮助。

您的问题是,将TableB.city括在`中,表示该列名为TableB.city(即TableB部分成为列名的一部分),而该列将找不到(对于TableB.state也是如此)

因此,解决方法是不要将表和列括在`

以下方面应起作用:-

SELECT TABLEA.name,TableB.city||' '||TableB.state FROM TableA JOIN TableB ON TableA.city_id = TableB.id;
完整示例:-

DROP TABLE IF EXISTS TableA;
DROP TABLE If EXISTS TableB;
CREATE TABLE IF NOT EXISTS TableA (id INTEGER PRIMARY KEY, name TEXT, city_id INTEGER);
CREATE TABLE IF NOT EXISTS TableB (id INTEGER PRIMARY KEY, city TEXT, state TEXT);
INSERT INTO TableB (city,state) VALUES ('Miami','Florida'),('Dallas','Texas');
INSERT INTO TableA (name,city_id) VALUES ('Fred',2),('Mary',1),('Tom',1),('Susan',2);
SELECT TABLEA.name,TableB.city||' '||TableB.state FROM TableA JOIN TableB ON TableA.city_id = TableB.id;
结果:-


当您尝试SQL语句时,得到的输出/错误是什么?