我使用作爲Oracle數據庫頂層的專有服務器端語言。使用這種語言,您可以使用虛擬表來獲取充滿數據的現有記錄結構,並在與該表結合的記錄結構上運行查詢。PHP + MySQL支持這種樣式的虛擬表連接嗎?
這裏有一個簡單的例子:
//DECLARE THE RECORD STRUCTURE
record data_out (
1 prsnl [*]
2 person_id = f8
2 full_name = vc
2 position = vc
2 status = vc
2 last_access_dt_tm = vc
2 role [*]
3 role_name = vc
3 role_id = f8
) with persistscript
//QUERY PEOPLE
select into "NL:"
from person p
where p.whatever_field = "QUALIFIER"
detail
a = a + 1
stat = alterlist(data_out->prsnl, a)
data_out->prsnl[a]->person_id = p.person_id
data_out->prsnl[a]->full_name = p.name_full_formatted
data_out->prsnl[a]->position = p.position
with time=10
//USE A DUMMY TABLE TO PULL IN MORE DATA FOR EACH PERSON
select into "NL:"
from (dumt d with seq = size(data_out->prsnl,5))
,rnd_role_def rrd
,rnd_r_assign_hx rah
plan d
join rah
where rah.team_id = data_in->team_id
and rah.prsnl_id = data_out->prsnl[d.seq]->person_id
and rah.handoff_dt_tm > cnvtdatetime(curdate-90,curtime)
join rrd
where rrd.role_id = rah.role_id
order by d.seq, rrd.role_name
head d.seq
i = 0
head rrd.role_name
i = i + 1
stat = altlist(data_out->prsnl[d.seq]->role, i)
data_out->prsnl[d.seq]->role[i]->role_id = rrd.role_id
data_out->prsnl[d.seq]->role[i]->role_name = rrd.role_name
with time=10
不PHP + MySQL的有這樣的事?如果是這樣,可以以某種方式指向我的鏈接與更多的信息或如何做。谷歌搜索沒有爲我提供任何東西 - 可能是搜索錯誤的關鍵字。
臨時表是不是性能責任。如果你在每個請求中運行臨時表,當然。但是,正確使用臨時表可以提高**性能。 – 2012-07-18 18:06:07