Mysql查询三张表中指定列的数据~在线等。。

zthsn 2011-11-18 09:06:07
题目:
我们用的mysql 现在要查询三张表 返回三张表里面的指定的几列 然后把数据在页面上显示出来
接着在页面用其他搜索条件查询的时候 再在取出来的数据基础上再进行筛选


求查询三张表中指定几列的SQL语句
...全文
283 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2011-11-18
  • 打赏
  • 举报
回复
[Quote]后面的where是任意六个条件的组合[/Quote]

什么样的六个条件? 如果是三个表中的各两个字段。 则考虑创建

create index x11 on table1 (id,col1);
create index x12 on table1 (id,col2);
create index x21 on table2 (id,col1);
create index x22 on table2 (id,col2);
create index x31 on table3 (id,col1);
create index x32 on table3 (id,col2);
ACMAIN_CHM 2011-11-18
  • 打赏
  • 举报
回复
[Quote]以后再这个结果集的基础上再进行筛选的话 索引怎么加呢??[/Quote]
索引只能加在表上,不能加在结果集上。

要根据你表中的数据情况和你实际的查询语句来决定加哪些索引,怎么加。
WWWWA 2011-11-18
  • 打赏
  • 举报
回复
建议
贴建表及插入记录的SQL,及要求结果出来看看
5-10条记录即可

后面的where是任意六个条件的组合:相应条件中用到的字段分别建立索引 OR 建立复合索引
zthsn 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wwwwa 的回复:]
引用 11 楼 zthsn 的回复:
引用 8 楼 acmain_chm 的回复:
select table1.col1,table1.col2,
table2.col11,table2.col22,
table3.col31,table1.col23
from table1 ,table2,table3
where table1.id=table2.id and table2.id2……
[/Quote]
后面的where是任意六个条件的组合
WWWWA 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zthsn 的回复:]
引用 8 楼 acmain_chm 的回复:
select table1.col1,table1.col2,
table2.col11,table2.col22,
table3.col31,table1.col23
from table1 ,table2,table3
where table1.id=table2.id and table2.id2=table3.id2
and ...……
[/Quote]
索引要根据相应的SQL语句来增删,一般是在连接字段、WHERE 字段上建立索引
zthsn 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 acmain_chm 的回复:]
select table1.col1,table1.col2,
table2.col11,table2.col22,
table3.col31,table1.col23
from table1 ,table2,table3
where table1.id=table2.id and table2.id2=table3.id2
and ...
[/Quote]
以后再这个结果集的基础上再进行筛选的话 索引怎么加呢??
WWWWA 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zthsn 的回复:]
引用 7 楼 taomanman 的回复:
引用 3 楼 zthsn 的回复:

我那个三张表是没有关联的啊

从三张表中取出我需要的几列的所有数据,

你还是把你的那几张表结构,放上来吧,你要显示哪几个也写出来。

就任意三张没有关联的表
[/Quote]
没有关联的话,只有取笛卡尔积了
select a.f1,b.f2,c.f3 from a,b,c where ....
zthsn 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 taomanman 的回复:]
引用 3 楼 zthsn 的回复:

我那个三张表是没有关联的啊

从三张表中取出我需要的几列的所有数据,

你还是把你的那几张表结构,放上来吧,你要显示哪几个也写出来。
[/Quote]
就任意三张没有关联的表
ACMAIN_CHM 2011-11-18
  • 打赏
  • 举报
回复
select table1.col1,table1.col2,
table2.col11,table2.col22,
table3.col31,table1.col23
from table1 ,table2,table3
where table1.id=table2.id and table2.id2=table3.id2
and ...
暖枫无敌 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zthsn 的回复:]

我那个三张表是没有关联的啊

从三张表中取出我需要的几列的所有数据,
[/Quote]
你还是把你的那几张表结构,放上来吧,你要显示哪几个也写出来。
WWWWA 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zthsn 的回复:]
我那个三张表是没有关联的啊

从三张表中取出我需要的几列的所有数据,
[/Quote]
没有关联的话,只有取笛卡尔积了
select a.f1,b.f2,c.f3 from a,b,c where ....
jiaweiqq123 2011-11-18
  • 打赏
  • 举报
回复
1L正解
WWWWA 2011-11-18
  • 打赏
  • 举报
回复
贴建表及插入记录的SQL,及要求结果出来看看
5-10条记录即可
zthsn 2011-11-18
  • 打赏
  • 举报
回复
我那个三张表是没有关联的啊

从三张表中取出我需要的几列的所有数据,
zthsn 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taomanman 的回复:]
表A的 ID,NUMBER,PRICE,ORDER_TIME,STATUS
表B的 USER_ID,STARTIME,STOPTIME,
表C的 CHANNEL_PAY
表D的 COMPANY
其中表A的COMPANY_ID=表B的COMPANY_ID=表C的 COMPANY_ID=表D的UID

SELECT
A.ID,
A.NUMBER,
A.PRICE,
A.ORDER_……
[/Quote]
其中表A的COMPANY_ID=表B的COMPANY_ID=表C的 COMPANY_ID=表D的UID
这句话什么意思啊?求解
本人菜鸟一只。。。。
暖枫无敌 2011-11-18
  • 打赏
  • 举报
回复
表A的 ID,NUMBER,PRICE,ORDER_TIME,STATUS
表B的 USER_ID,STARTIME,STOPTIME,
表C的 CHANNEL_PAY
表D的 COMPANY
其中表A的COMPANY_ID=表B的COMPANY_ID=表C的 COMPANY_ID=表D的UID

SELECT
A.ID,
A.NUMBER,
A.PRICE,
A.ORDER_TIME,
B.USER_ID,
B.STARTIME,
B.STOPTIME,
C.CHANNEL_PAY,
D.COMPANY
FROM
D表 D
LEFT JOIN A表 A ON A.COMPANY_ID = D.UID
LEFT JOIN B表 B ON B.COMPANY_ID = D.UID
LEFT JOIN C表 C ON C.COMPANY_ID = D.UID

有条件的再加行:
WHERE ..........
排序(如A表的ID由大到小排):
ORDER BY A.ID DESC

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧