0

3 つのテーブル a、b、c から結合されたクエリがあります。ここでの問題は、テーブル c が 2 つのデータベース D1 AND 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

必要なのはalias

$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 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 に答える