SQL - 使用的select语句具有不同的列数

时间:2014-01-02 03:56:31

标签: mysql sql function

我正在尝试创建我的第一个函数,它创建没有任何错误,但是,当我尝试使用它时,它给了我错误。

这是函数 -

    CREATE FUNCTION isie_kontakti (condition CHAR(3)) 
    RETURNS CHAR(100) 
    BEGIN 
    DECLARE returnthis CHAR(100); 
    SELECT DISTINCT Person.name, Person.lastName, Contacts.mobile, Contacts.email 
    FROM Person JOIN Contacts on Contacts.Person_ID = Person.ID 
    JOIN ParentChild on ParentChild.parentID = Person.ID 
    JOIN ChildGroup ON ChildGroup.Person_ID = ParentChild.childID 
    WHERE ChildGroup.Group_ID = 'condition' INTO returnthis; 
    RETURN returnthis; 
    END//

表架构 - http://www.imagesup.net/dm-713886347846.png

1 个答案:

答案 0 :(得分:2)

您创建函数以返回char(100)类型的单个列,但returnthis项包含相当多的列。

您需要匹配查询和返回类型。

你如何取决于你想要实现的目标。它可能就像将select中的列连接成一个变量一样简单,这与(由于我目前没有DBMS可用时未经测试)一致:

SELECT Person.name     | ' '
     | Person.lastName | ' '
     | Contacts.mobile | ' '
     | Contacts.email
  FROM ...