sql select 查询或视图中的额外列
Extra columns in sql select query or view
所以我目前在我的数据库中有 3 tables,
一个包含有关成员的信息,一个包含有关他们的船(长度)的信息,一个包含有关价格的信息。
盖子(成员)
Schip(船)
关税(价格)
我需要创建一个查询来组合这些 table 的部分内容,但我还没有找到任何方法来执行此操作。这就是我的 'new' table / select 语句结果应该是这样的:
- Naam 应该在哪里 Lid.Naam(从第一个 table)
- 地址应该是Lid.Adres(从第一个table开始)
- Email 应该是Lid.Email(从第一个table开始)
- contributie 应该是 Tarief.Bedrag where Soort = 'contributie'
- 其中 liggeld 应为 (Tarief.Bedrag where Soort = 'liggeld') x (Schip.lengte) 如果 Lid.Schip 为空,则此数量应为 0
- 总计应为 liggeld + contributie
- 最后,所有拥有lid.ContributieBetaald = 'ja'的人不应该在列表中
我已经制作了一个示例,说明如果查询完全有效,它应该是什么样子:
如果有人知道如何为此或视图创建查询并愿意帮助我,谢谢!
试试这个:
SELECT l.Naam, l.Adres, l.Email,
(SELECT Bedrag FROM Tarief WHERE Soort = 'contributie' LIMIT 1) AS 'Contributie',
(SELECT Bedrag FROM Tarief WHERE Soort = 'liggeld' LIMIT 1)*IFNULL(s.length,0) AS 'Liggeld',
(SELECT Bedrag FROM Tarief WHERE Soort = 'contributie' LIMIT 1)+
(SELECT Bedrag FROM Tarief WHERE Soort = 'liggeld' LIMIT 1)*IFNULL(s.length,0) AS 'Totaal'
FROM Lid l
LEFT JOIN Schip s ON l.Schip=s.Naam
WHERE l.ContributieBetaald <> 'ja';
所以我目前在我的数据库中有 3 tables, 一个包含有关成员的信息,一个包含有关他们的船(长度)的信息,一个包含有关价格的信息。
盖子(成员)
Schip(船)
关税(价格)
我需要创建一个查询来组合这些 table 的部分内容,但我还没有找到任何方法来执行此操作。这就是我的 'new' table / select 语句结果应该是这样的:
- Naam 应该在哪里 Lid.Naam(从第一个 table)
- 地址应该是Lid.Adres(从第一个table开始)
- Email 应该是Lid.Email(从第一个table开始)
- contributie 应该是 Tarief.Bedrag where Soort = 'contributie'
- 其中 liggeld 应为 (Tarief.Bedrag where Soort = 'liggeld') x (Schip.lengte) 如果 Lid.Schip 为空,则此数量应为 0
- 总计应为 liggeld + contributie
- 最后,所有拥有lid.ContributieBetaald = 'ja'的人不应该在列表中
我已经制作了一个示例,说明如果查询完全有效,它应该是什么样子:
如果有人知道如何为此或视图创建查询并愿意帮助我,谢谢!
试试这个:
SELECT l.Naam, l.Adres, l.Email,
(SELECT Bedrag FROM Tarief WHERE Soort = 'contributie' LIMIT 1) AS 'Contributie',
(SELECT Bedrag FROM Tarief WHERE Soort = 'liggeld' LIMIT 1)*IFNULL(s.length,0) AS 'Liggeld',
(SELECT Bedrag FROM Tarief WHERE Soort = 'contributie' LIMIT 1)+
(SELECT Bedrag FROM Tarief WHERE Soort = 'liggeld' LIMIT 1)*IFNULL(s.length,0) AS 'Totaal'
FROM Lid l
LEFT JOIN Schip s ON l.Schip=s.Naam
WHERE l.ContributieBetaald <> 'ja';