SELECT a.A表字段名, b.B表字段名 FROM A表名 a LEFT JOIN B表名 b WHERE 條件自己寫,例如(a.字段名 != '' ) ON a.字段名 = b.字段名
創(chuàng)新互聯(lián)專注于克拉瑪依網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供克拉瑪依營銷型網(wǎng)站建設(shè),克拉瑪依網(wǎng)站制作、克拉瑪依網(wǎng)頁設(shè)計、克拉瑪依網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造克拉瑪依網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供克拉瑪依網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
這種聯(lián)合查詢的限制是ab2表必須有一個相同的關(guān)鍵字,且相等
也許是我孤陋寡聞了,似乎沒有辦法跨庫關(guān)聯(lián)查詢吧。如果非要跨庫關(guān)聯(lián),我能想到的辦法就是把兩邊的數(shù)據(jù)查詢出來并存入一個臨時表,再查詢臨時表。不過這種方法只是用于不同庫中相同或相似的表,比如有的數(shù)據(jù)量較大的分庫項目。
在回過頭來看你的項目需求,其實根本不需要跨庫的。首先在任意一個庫里創(chuàng)建一個表,在發(fā)送會議信息給會員的時候,除了這個表的主鍵之外,只需要記錄會員的id和會議的id,這兩個id分別從兩個庫里獲取。
你如果要查看某條會議信息發(fā)送的詳情,就通過這兩個id分別從兩個庫里獲取會員信息和會議信息。
你如果要查詢出列表,用笨辦法,因為你這個表肯定和會員或會議其中一個在一個庫了,可以關(guān)聯(lián),然后在列表循環(huán)中逐條查詢另一個數(shù)據(jù),雖然這樣有些影響性能,但是也比“跨庫關(guān)聯(lián)查詢”好點,況且如果數(shù)據(jù)多的話,一般都是分頁操作的話,一個列表最多二三十條記錄,一次查詢二三十也不會有太大影響。
另一個笨辦法,就是把發(fā)送記錄列表中所有需要列出的字段都記錄在發(fā)送會議信息的記錄表里,這樣就不需要在循環(huán)查詢另一個表了。但缺點就是這里面的數(shù)據(jù)就不能和會員以及會議信息的數(shù)據(jù)同步,除非你在更新會員以和會議信息的數(shù)據(jù)的同時更新這個表的數(shù)據(jù)。
但不管用哪種方式,我覺得都比“跨庫關(guān)聯(lián)查詢”要好,即使真的有“跨庫關(guān)聯(lián)查詢”的方法。
樓下幾位都對。但是你這表其實不太合理,兩張表的關(guān)聯(lián)有問題。因為商家名可能相同,建議你加個字段shangjiaID 。table1 和table2中都有,且唯一。然后用左鏈接。left join 。不明白啥意思可以去百度下。
1.同時查出兩個表所有的記錄:
select 字段
from table1
union
select 字段
from table2
2.這個字段相同的記錄
select *
from table1,table2
where table1.字段 = table2.字段
?php
$sql = "SELECT * FROM `table1`";//假設(shè)一張表為'table1'
$result = mysql_query($sql);//執(zhí)行sql語句
$results = array();
foreach($result as $key = $val){ //遍歷
$sql2 = "SELECT * FROM `table2` WHERE `id` = '".$val['table2_id']."' ";
$results[] = mysql_query($sql2);
}
?
這樣寫應(yīng)該可以,但是也可以使用sql嵌套查詢