1

次のようにテーブルを作成する必要があります: table1:

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

表 2:

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

私は2つのクエリを持っています:

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

この 2 つのクエリを 1 つの手順で記述したいと考えています。

4

3 に答える 3

2

単一の手順で複数の選択クワイアの構造:

CREATE PROCEDUREサンプル(l_uid INT)BEGIN

SELECT* FROMcollege_edu WHEREuid= l_uid;

SELECT* FROMwork_experience WHEREuid= l_id;

END

于 2013-02-22T11:19:53.663 に答える
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削除してください。ALLUNION

于 2013-02-22T09:37:27.553 に答える
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
于 2013-02-22T09:40:39.763 に答える