也許是我孤陋寡聞了,似乎沒有辦法跨庫關(guān)聯(lián)查詢吧。如果非要跨庫關(guān)聯(lián),我能想到的辦法就是把兩邊的數(shù)據(jù)查詢出來并存入一個臨時表,再查詢臨時表。不過這種方法只是用于不同庫中相同或相似的表,比如有的數(shù)據(jù)量較大的分庫項目。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)豐滿,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
在回過頭來看你的項目需求,其實根本不需要跨庫的。首先在任意一個庫里創(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)查詢”的方法。
你的php程序沒有問題是你的SQL語句
寫的有問題,它的意思是找出book表中作者為空的所有記錄,
你的book表中沒有作者為空的記錄,所以沒有輸出數(shù)據(jù),把book表中的author列的數(shù)據(jù),一部分改成空,就有數(shù)據(jù)輸出了.
或者把SQL語句的"WHERE author=''"去掉也行.
多表查詢的話,表與表之間要有關(guān)聯(lián)字段。
例外,應(yīng)該用join查詢, 比如:
select * from 表1 left join 表2 on 表2.uid = 表1.id where 表1.字段 = 'XXXX'
select ID from a union select level,integ from b where (條件一) and (條件二) and (條件三)
自己改條件。