SQLite INNER JOIN - 如何只输出两个表的公共列之一
SQLite INNER JOIN - How to output only one of the common columns the two tables have
假设我有两个 tables:
lessons 列:lessonID, name
studentlessons 列:lessonID,age
我正在尝试执行此操作:
SELECT lessons.*, studentlessons.* FROM studentlessons
JOIN lessons WHERE studentlessons.lessonID = lessons.lessonID
但结果是 table,其中包含以下列:
lessonID, name, lessonID(1), age
我想避开 lessonID(1),所以我想要的输出必须是:
lessonID, name, age
我知道我可以使用这个语法:
SELECT lessons.lessonID, lessons.name, studentlessons.age FROM studentlessons
JOIN lessons WHERE studentlessons.lessonID = lessons.lessonID
但是因为一些其他原因我不能。
是否有任何纯 SQLite 语法可以提供我想要的输出?
你要的是NATURAL JOIN
:
SELECT * FROM studentlessons NATURAL JOIN lessons
其中returns只是其中一列lessonID
。
这些表在具有相同名称的列上隐式连接。
参见demo。
假设我有两个 tables:
lessons 列:lessonID, name
studentlessons 列:lessonID,age
我正在尝试执行此操作:
SELECT lessons.*, studentlessons.* FROM studentlessons
JOIN lessons WHERE studentlessons.lessonID = lessons.lessonID
但结果是 table,其中包含以下列:
lessonID, name, lessonID(1), age
我想避开 lessonID(1),所以我想要的输出必须是:
lessonID, name, age
我知道我可以使用这个语法:
SELECT lessons.lessonID, lessons.name, studentlessons.age FROM studentlessons
JOIN lessons WHERE studentlessons.lessonID = lessons.lessonID
但是因为一些其他原因我不能。
是否有任何纯 SQLite 语法可以提供我想要的输出?
你要的是NATURAL JOIN
:
SELECT * FROM studentlessons NATURAL JOIN lessons
其中returns只是其中一列lessonID
。
这些表在具有相同名称的列上隐式连接。
参见demo。