看到論壇里很多人都在問,,如果能在用戶投稿的文章后顯示該用戶的頭像,,如果能在 企業(yè)用戶發(fā)布的信息 后顯示該企業(yè)的其他信息等…
其實(shí)這些功能可以用SQL標(biāo)簽來實(shí)現(xiàn)的,,現(xiàn)在我們來簡(jiǎn)單的談?wù)凷QL多表查詢:
當(dāng)然在做多表查詢之間,,必須要對(duì)帝國數(shù)據(jù)庫中相關(guān)表的字段及其對(duì)應(yīng)關(guān)系有大概的了解,,不然是無法寫出相應(yīng)查詢語句的,。
廢話少說,,我們開始實(shí)踐:
問題:在信息后顯示發(fā)布該信息用戶的 頭像、QQ、MSN等相關(guān)信息
分析:
1,、這樣的查詢應(yīng)該會(huì)用到ecms_news表(其他模型表名自找),,和存放用戶的 真實(shí)姓名、頭像,、QQ,、MSN等信息的enewsmemberadd表,共2張
2,、標(biāo)簽?zāi)0逯形覀冃枰玫臉?biāo)簽,,一般的調(diào)用大概只需要[!--titleurl--] [!--title--] [!--newstime--] 這些,而[!--ftitle--] [!--smalltext--] [!--writer--] [!--befrom--] [!--newstext--]
這些基本很少用到,,而系統(tǒng)只能允許我們調(diào)用這些內(nèi)置標(biāo)簽,,所以需要在不用的標(biāo)簽內(nèi)選擇幾個(gè)來使用,選擇的數(shù)量是和你要調(diào)用的信息個(gè)數(shù)成正比的,。
實(shí)例:
信息后增加所投稿用戶的 真實(shí)姓名 頭像 信息,。
找到 真實(shí)姓名 頭像 分別對(duì)應(yīng) enewsmemberadd表內(nèi)truename和 userpic字段,我們挑選了 [!--writer--] [!--befrom--]標(biāo)簽來顯示它們,。
開始寫SQL,,兩張表的是用USERID這個(gè)字段關(guān)聯(lián)的
select a.*,b.truename as writer,b.userpic as befrom from phome_ecms_news as a LEFT JOIN phome_enewsmemberadd as b ON a.userid=b.userid order by newstime desc limit 100
紅色部分定義排序方式,藍(lán)色部分定義查詢記錄數(shù),,自定義列表中可不定義,。
標(biāo)簽?zāi)0逵涀∫?[!--writer--] [!--befrom--] 標(biāo)簽,不然 真實(shí)姓名,、頭像 是不會(huì)顯示的,。
如果需要可以分頁的,可以用自定義列表來調(diào)用,,其他的調(diào)用大家自己思考吧,。