如何在单个过程中编写多个选择查询?

时间:2013-02-22 09:34:36

标签: mysql sql stored-procedures phpmyadmin

我必须将表格作为: 表1:

UID | COLLEGE_NAME | COLLEGE_ADDRESS
------------------------------------

表2:

UID | COMPANY_NAME | COMPANY_ADDRESS
------------------------------------

我有2个问题:

select * from table1 where uid='$uid';   
select * from table2 where uid='$uid';

我想在一个程序中编写这两个查询。

3 个答案:

答案 0 :(得分:2)

单个过程中多个选择quires的结构:

  

CREATE PROCEDURE示例(l_uid INT)BEGIN

     

SELECT * FROM college_edu WHERE uid = l_uid;

     

SELECT * FROM work_experience WHERE uid = l_id;

     

END

答案 1 :(得分:0)

以下是创建STORED PROCEDURE的声明。

DELIMITER $$
CREATE PROCEDURE procedureName(IN _uid VARCHAR(15))
BEGIN
    SELECT UID, COLLEGE_NAME name, COLLEGE_ADDRESS address
    FROM    table1
    WHERE uid = _uid
    UNION ALL
    SELECT UID, COMPANY_NAME name, COMPANY_ADDRESS address
    FROM    table2
    WHERE uid = _uid
END $$
DELIMITER ;

请注意UNION上有ALL个关键字,用于在结果列表中添加重复记录。但如果您更喜欢UNIQUE,请移除ALL上的UNION关键字。

答案 2 :(得分:0)

以下代码可能会为您服务。此外,附加的tbl列将告诉您数据来自哪个表,这将有助于进一步操作。

 SELECT UID, COLLEGE_NAME name, COLLEGE_ADDRESS address , 1 as tbl
    FROM    table1
    WHERE uid = _uid
    UNION ALL
    SELECT UID, COMPANY_NAME name, COMPANY_ADDRESS address , 2 as tbl
    FROM    table2
    WHERE uid = _uid