2013-02-22 52 views
1

我要表为: 表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'; 

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

+1

你想他们的结果结合起来? – 2013-02-22 09:35:33

+0

雅我必须结合的结果也。 – 2013-02-22 09:36:26

回答

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 ; 

通知,UNIONALL关键字就可以在结果列表上添加重复的记录。但如果您更喜欢UNIQUE,请删除UNION上的ALL关键字。

+1

如果我不想联合结果,我只想继承过程中的多个select查询呢? – 2013-02-22 10:01:32

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 
+0

如果我不想结合结果,我只想继承过程中的多个select查询呢? – 2013-02-22 10:04:13

2

结构为在单个过程中多个选择奎雷斯:

CREATE PROCEDURE样品(l_uid INT)BEGIN

SELECT * FROM college_edu WHERE UID = l_uid;

SELECT * FROM work_experience WHERE uid = l_id;

END

相关问题