>  기사  >  백엔드 개발  >  求一将mysql一数据库下多表循环合并查询语句?该怎么处理

求一将mysql一数据库下多表循环合并查询语句?该怎么处理

WBOY
WBOY원래의
2016-06-13 13:46:111321검색

求一将mysql一数据库下多表循环合并查询语句?
$str="SELECT * FROM talbe having ( 姓名 like '%奥巴马%'||职业 like '%政治家%') limit ".($page-1)*$num."


PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$conn=@mysql_connect("localhost","root","123456","test");//连接test数据库后,如何将test下的各个表合并查询输出结果?

貌似
for(...){//循环求出表名
....
tableabcxyz= talbe1,talbe2,...talbe3
}

$str="SELECT * FROM talbeabcxyz having ( 职业 like  '%医生%') limit ".($page-1)*$num."

....




求解。



------解决方案--------------------
每张表建立外键,可将所有表链接起来查询。
如:表1:
CREATE TABLE `mis_link` (
`lid` int(6) NOT NULL,
`cid` int(6) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表2:
CREATE TABLE `mis_commodity` (
`cid` int(6) NOT NULL auto_increment,
`comName` varchar(20) NOT NULL,
`comPrice` varchar(20) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表3:
CREATE TABLE `mis_order` (
`oid` int(6) NOT NULL auto_increment,
`sid` int(6) NOT NULL,
`cid` int(6) NOT NULL,
`ordTime` varchar(20) NOT NULL default '',
`ordPrice` varchar(20) NOT NULL default '',
PRIMARY KEY (`oid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

SQL code

select o.oid,l.lid,c.cid,comName,comPrice,ordTime
from mis_order o,mis_link l,mis_commodity c
where o.oid=l.lid and c.cid=l.cid;
<br><font color="#e78608">------解决方案--------------------</font><br>talbe 就没懂啥意思...table就有点明白了...<br><br>select name from table1 where name like "obama%"<br>union<br>select name from table2 where name like "obama%"<br><br><br>尝试使用union操作,但注意select出来的列数必须一致,不一致的可以用null补充
<br><font color="#e78608">------解决方案--------------------</font><br>
探讨
可以改成 以下吗?
1. [表名2名称的缩写]改成 直接用 [表名2];
2. 去掉form后面的 as和缩写名称;为什么要加as和缩写名称呢?
3.where后是我想要的条件:
如:

select [表名1].表1字段,[表名2].表2字段,[表名3].表3字段,……
from [表1名], [表2名], ……
having ( 职业 like '%医生%'||其他 like '%医生%') limit ".($page-1)*$num.",".$num;
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.