私はこれをmysqlで作成しました
CREATE VIEW MYVIEW AS (
SELECT A.FNAME
, A.LNAME
, B.EMAIL
FROM EMPLOYEE A, EMPEMAIL B
WHERE A.EID = :empId
AND A.EID = B.EID
AND B.EMAILTYP = :emailType)
ここで、「empId」と「emailType」を動的にします。つまり、選択した時間に値を渡します。コードで何を変更する必要がありますか?よろしくお願いします
パラメータなしでビューを作成するだけです(つまり、結合のみを処理します):
CREATE VIEW MYVIEW AS (
SELECT A.FNAME
, A.LNAME
, B.EMAIL
, A.EID AS EID -- added to be used in the WHERE
, B.EMAILTYP AS EMAILTYP -- added to be used in the WHERE
FROM EMPLOYEE A, EMPEMAIL B
WHERE A.EID = B.EID)
そして、クエリを実行するときに動的パラメータを適用します。
SELECT FNAME, LNAME, EMAIL
FROM my_view
WHERE eid = 'your_empId' AND emailtyp = 'your_emailType'
上記のWHERE
に注意してください。これは、VIEW
で宣言された2つの追加フィールドを使用します。
このソリューションは関数で使用できます-
CREATE FUNCTION func() RETURNS int(11)
RETURN @var;
CREATE VIEW view1 AS
SELECT * FROM table1 WHERE id = func();
例を使用して:
SET @var = 1;
SELECT * FROM view1;