informix中有无dual表,希望一次查询中 多个子查询 不同的不关联的多张表

informix中有无dual表为提高IO效率,希望一次查询中 多个子查询 不同的不关联的多张表

select 
(select a from table1 where ****),
(select b from table2 where ****),
(select c from table3 where ****)
from dual;

可是貌似informix中没有dual表!

在网上搜索了一下
select 
(select a from table1 where ****),
(select b from table2 where ****),
(select c from table3 where ****)
from sysmaster:sysshmvals;

例如:select 
(select policyno from dm_plc_policy where rowid=258),
(select startdate from dm_nd_plc_policy where rowid=27027201)
from sysmaster:sysshmvals

(注:条件中不能返回多行数据,只能返回一行数据:如rowid<100,则会报错。出现
A subquery has returned not exactly one row.错误。)
这样可以实现

但是 还有别的方法吗
另:

sysmaster:sysshmvals 这个代表什么意思啊!!????
需要什么权限才能用啊!????

------解决方案--------------------


from systables where tid =1

------解决方案--------------------
1、你可以通过以下SQL命令获得精确的最近一次数据库启动时间:
   select dbinfo("utc_to_datetime", sh_pfclrtime) from sysmaster:sysshmvals
   sysshmvals表记录数据库最近一次启动的信息!

2、dual表找不到!

时间: 2024-10-25 13:52:50

informix中有无dual表,希望一次查询中 多个子查询 不同的不关联的多张表的相关文章

mysql left join 左连接查询关联n多张表

eft join 左连接即以左表为基准,显示坐标所有的行,右表与左表关联的数据会显示,不关联的则不显示.关键字为left join on. **基本用法如下: select table a left join table b on a.id = b.ta_id** 注意:1??其中on后面关联的字段应该是同一字段(两表关联的外键) 2??由于以左表为基准,左表一条记录如果对应右表多条记录,那查出的数据中右表的数据也只显示一条,如果要都显示,可以用group_contact()将字段用逗号隔开显示

三张表关联 修改第三张表所关联前两张表的某个字段的值

---三张表关联 利用关联的字段 表一关联表二 表二关联表三 来修改表三对应字段下的某个值. update GY_FYJY set zfbl='50' where fyxh in (select fyxh from gy_ylsf where fygb ='26')

mysql 一张表的多个字段关联另外一张表

SELECT vtiger_orderitem.orderid, ( SELECT vtiger_users.last_name FROM vtiger_users WHERE vtiger_orderitem.signatory = vtiger_users.id ) AS signatory, ( SELECT vtiger_users.last_name FROM vtiger_users WHERE vtiger_orderitem.servicer = vtiger_users.id

oracle中查询所有外键引用到某张表的记录

其实查找这篇文章  我主要用的sql 是这句  select * from user_cons_columns t where t.constraint_name like 'FK_CTS_CONT_REINS__CRR'; 起因: 系统测试的时候发现如果某条记录已经被引用了,这个时候删除这条记录会引起数据不一致,系统会报错.比如警员信息,在考勤记录表里会引用警员ID,如果考勤记录表中已经存在这个警员ID了,这时从警员表中删除该警员,就会引起数据不一致,前台报错.所以,这个时候我就想查找数据库中

数据库中两张表之间的数据同步实现思路(增加、删除、更新)Mysql、sqlserver

分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加:如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END 2.数据同步删除:如有

mysql查询某张表的外键

mysql和oracle一样也是有数据字典表的,是存在单独的一个库叫INFORMATION_SCHEMA,要查看某张表的外键要从字典表中查找 如mysql查询某张表的外键,可以用下面的方式查询 use INFORMATION_SCHEMA; select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from KEY_COLUMN_USAGE where table_name

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join

oracle 中的dual表

Dual表是每个数据库创建时默认生成的,该表仅有一列一行. 1)分析dual表执行,如下: 2)应用: 在oracle数据库中,dual表作为一个虚表存在的,因为oracle的查询操作语句必须满足格式:select columnname from tablename,其中的from所指向的表示必须的,所以某些非查询操作可以通过dual表来实现,如: --查看当前日期: Select sysdate from dual ; --计算等式: Select 3*3 – 3 as result, 8-9

oracle中的dual表详解

oracle中的dual表详解 1.DUAL表的用途 Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中 --查看当前连接用户 SQL> select user from dual; USER ------------------------------ SYSTEM --查看当前日期.时间 SQL> select sysdate from dual; SYSDATE ----------- 2007-1-24 1 SQL> sele