SQLite 动态别名
SQLite dynamic aliases
我想在 sqlite 上定义一个动态别名(以便获得最通用的 SQL 查询)。
我有两个 tables t1 和 t2
t1 结构:
id|url|type
t2 结构:
id|us|es|fr|de|nl
我的要求如下:
SELECT t1.*,us as name FROM t1 INNER JOIN t2 ON (t1.id = t2.id) ORDER BY t1.id ASC;
我想要做的是有一个别名(例如:名称)给我 t2.us 的正确值匹配 id,除非类型 id 1.
例如,我在每个 table:
中有两个条目
id|url|type
1|http://www.google.com/|0
2|file:///tmp/file.txt|1
对于 t2:
id|us|es|fr|de|nl
1|love|amar|amour|die liebe|liefde
2|sugar|azucar|sucre|zucker|suiker
我想要这样的东西:
id|url|type|name
1|http://www.google.com/|0|love
2|file:///tmp/file/txt|1|file:///tmp/file/txt
如果类型为 0,请在 t2 table 中进行研究。
如果类型为 1,只需将 "url" 字段作为名称。
真的不知道它是否清楚,以及 SQLite 是否可行。
我想避免以编程方式(在 C 中)执行此操作。
谢谢
听起来您正在寻找一个条件语句来选择要显示的列:
SELECT
t1.*,
CASE WHEN TYPE = 1 THEN url ELSE us END AS name
FROM t1
INNER JOIN t2 ON (t1.id = t2.id)
ORDER BY t1.id ASC;
示例输出:
| id | url | type | name |
|----|------------------------|------|----------------------|
| 1 | http://www.google.com/ | 0 | love |
| 2 | file:///tmp/file.txt | 1 | file:///tmp/file.txt |
我想在 sqlite 上定义一个动态别名(以便获得最通用的 SQL 查询)。
我有两个 tables t1 和 t2
t1 结构:
id|url|type
t2 结构:
id|us|es|fr|de|nl
我的要求如下:
SELECT t1.*,us as name FROM t1 INNER JOIN t2 ON (t1.id = t2.id) ORDER BY t1.id ASC;
我想要做的是有一个别名(例如:名称)给我 t2.us 的正确值匹配 id,除非类型 id 1.
例如,我在每个 table:
中有两个条目id|url|type
1|http://www.google.com/|0
2|file:///tmp/file.txt|1
对于 t2:
id|us|es|fr|de|nl
1|love|amar|amour|die liebe|liefde
2|sugar|azucar|sucre|zucker|suiker
我想要这样的东西:
id|url|type|name
1|http://www.google.com/|0|love
2|file:///tmp/file/txt|1|file:///tmp/file/txt
如果类型为 0,请在 t2 table 中进行研究。 如果类型为 1,只需将 "url" 字段作为名称。
真的不知道它是否清楚,以及 SQLite 是否可行。 我想避免以编程方式(在 C 中)执行此操作。
谢谢
听起来您正在寻找一个条件语句来选择要显示的列:
SELECT
t1.*,
CASE WHEN TYPE = 1 THEN url ELSE us END AS name
FROM t1
INNER JOIN t2 ON (t1.id = t2.id)
ORDER BY t1.id ASC;
示例输出:
| id | url | type | name |
|----|------------------------|------|----------------------|
| 1 | http://www.google.com/ | 0 | love |
| 2 | file:///tmp/file.txt | 1 | file:///tmp/file.txt |