sql中的额外列选择查询或查看

时间:2015-04-16 11:56:10

标签: mysql sql database calculated-columns

所以我目前在我的数据库中有3个表, 一个包含有关成员的信息,一个关于他们的船只(长度)和一个关于价格的信息。

Lid(会员)

Member Table

Schip(船)

Boat table

Tarief(价格)

Prices

我需要创建一个组合这些表的部分的查询,但我还没有找到任何方法来执行此操作。这就是我的'new'table / select语句结果应如下所示: enter image description here

  • Naam应该是Lid.Naam(来自第1张表)
  • Adres应该是Lid.Adres(来自第1张表)
  • 电子邮件应该是Lid.Email(来自第1张表)
  • 贡献者应该是Tarief.Bedrag,其中Soort ='contributie'
  • 其中liggeld应该是(Tarief.Bedrag,其中Soort ='liggeld')x(Schip.lengte),如果Lid.Schip为空,则此数量应为0
  • 其中totaal应为liggeld + contributie
  • 最后,每个有lid.ContributieBetaald ='ja'的人都不应该在列表中

我已经提供了一个示例,说明如果查询完全正常,它应该是什么样子: How it finally should look like

如果有人知道如何为此视图或视图创建查询,并希望对我有所帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

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';