0

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

查询是:

$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";

问题是字段“学校”来自表 c,如果我从查询中避免字段“学校”它工作正常,但我也必须获取字段“学校”,我该如何修改查询。谢谢:)

4

3 回答 3

2

你需要的是别名

$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";
于 2013-06-25T07:21:44.023 回答
0

试试这样:-

$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";
于 2013-06-25T07:32:02.507 回答
0

尝试这个:

$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
";
于 2013-06-25T07:43:57.963 回答