我已經寫了社交流的MySQL查詢。僅一個多表的表獲取數據連接
這就是:
SELECT distinct(d.id), d.directory, u.name, u.pic
FROM data as d, follow as f, users as u
WHERE f.flwid = $id
AND f.status = 1
AND d.blocked = '0'
AND (d.upld_id = $id OR d.timeline_id = $id OR d.upld_id = f.acid OR d.timeline_id = f.acid)
AND (d.`with`<if(f.is_con=1,3,2) or d.`with`<if(d.upld_id=$id,4,2))
AND u.id = d.upld_id
ORDER BY
d.id DESC
LIMIT 18
現在上面的問題是,當用戶不遵循任何人(即遵循表中沒有針對特定用戶的任何行),它不會顯示用戶自己因爲在隨後的表中沒有行,所以兩個表都不加入,所以在家鄉流中發佈。
我無法配置我怎樣才能改變這種查詢我只用跟着表的corredentials 4-5的地方,我不能使用IN
與子查詢,因爲子查詢會負擔過重的服務器:)
任何幫助,請它將非常感激。
目前,它提供了這樣的 數據如果用戶遵循的一個或多個民族/頁 比它顯示用戶自己跟着帳戶的帖子。
** **,但如果用戶不遵循任何其他帳戶指的是新註冊的用戶比他/她共享任何職位不首頁中顯示的,因爲後續的表不與其他兩個表加入因爲它沒有會話用戶的任何行。
編輯 上述SQL查詢返回包含用戶及其後續的唯一帖子的行。 我在PHP的幫助下在用戶帳戶的主頁中顯示這些帖子。 但我得到的問題是,當用戶在新的或他/她不跟着別人比超過爲什麼用戶自己的崗位也沒有她/他的帳戶的主出了後續的表不與數據表這就是加盟。有人幫助我解決我的SQL查詢。 我發現只是其中的用戶表,我將存儲列命名爲n_followings
,並在獲取與查詢,我將使用PHP狀況數據的時間,如果n_followings == 0比我會用這個SQL查詢非SQL想法
SELECT <columns> FROM data where timeline_id='$;id' or upld_id='$id'
僅供參考,'DISTINCT'不是一個函數,它並不需要這樣的一個參數。這是一個適用於整個'SELECT'列表的關鍵字。 – Barmar 2014-09-01 14:57:06
請提供您想要的數據和結果。幾乎不可能弄清楚你究竟在問什麼。 – Bulat 2014-09-01 14:58:22
我再次編輯........................................ :) – 2014-09-19 15:53:29