[英]Mysql Query Combination
我有一個查詢,它由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,如果我從查詢中避免字段“學校”它工作正常,但我也必須獲取字段'學校',我如何修改查詢。 謝謝:)
你需要的是別名 ,
$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";
嘗試這樣: -
$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";
嘗試這個:
$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
";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.