首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询组合

问Mysql查询组合
EN

Stack Overflow用户
提问于 2013-06-25 15:17:36
回答 3查看 105关注 0票数 0

我有一个由3个表a,b,c组合而成的查询,这里的问题是表c存在于两个数据库D1和D2中,所以我必须从两个数据库中获取表c .Table a和b仅从数据库D1中的记录,

查询为:

代码语言:javascript
复制
$strQuery="SELECT a.id, b.lastname, school " ."FROM D1.a,D1.b" .
    " WHERE a.idint = (select c_idint from D1.c where Cid IN(10) 
UNION select c_idint from D2.c where Cid IN(10) order by c_idint)
 AND a.idint = b.idb";

问题是字段'school‘来自表c,如果我从查询中避免了字段'school’,它可以工作得很好,但我也必须获取字段'school‘,我如何修改查询。谢谢:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-25 15:43:58

试试这个:

代码语言:javascript
复制
$strQuery="SELECT a.id, b.lastname, c.school as dSchool, '' as ddSchool " ."FROM D1.a,D1.b, D1.c" .
    " WHERE a.idint = c.idint AND c.Cid IN (10)
 AND a.idint = b.idb

UNION 

SELECT a.id, b.lastname, '' as dSchool, c.school as ddSchool " ."FROM D1.a,D1.b, D2.c" .
    " WHERE a.idint = c.idint AND c.Cid IN (10)
 AND a.idint = b.idb
";
票数 0
EN

Stack Overflow用户

发布于 2013-06-25 15:21:44

你需要的是alias,

代码语言:javascript
复制
$strQuery="SELECT a.id, b.lastname, D2.c.school as school1,D1.c.school as school2 " ."FROM D1.a,D1.b,D1.c,d2.c" .
          " WHERE a.idint = (select c_idint from D1.c where Cid IN(10) 
          UNION select c_idint from D2.c where Cid IN(10) order by c_idint)
          AND a.idint = b.idb";
票数 2
EN

Stack Overflow用户

发布于 2013-06-25 15:32:03

像这样试一试:

代码语言:javascript
复制
$strQuery="SELECT a.id, b.lastname, c.school " ."FROM D1.a,D1.b,D1.c" .
 " WHERE a.idint = (select c_idint from D1.c where Cid IN(10) 
UNION select c_idint,school from D2.c where Cid IN(10) order by c_idint)
AND a.idint = b.idb";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17291361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档