2016-07-09 61 views
-2

我一直在嘗試聯合三個並加入一個表,我成功地選擇了只使用內部聯接,並且還結合了內部聯接和聯合BU我的問題是獲得答覆ID我有嘗試了很多事情,以顯示響應ID,但一直得到錯誤,而其他做工精細Sql選擇內部聯接和聯合3表

婁SQL給我這個

 //$dsnnot->prepare("SELECT * FROM replys r INNER JOIN blog_post b ON r.rid = b.BID WHERE b.UserName = :ownerna AND r.read = 1");   

     $dsnnot->prepare('SELECT * FROM (
      SELECT "post" AS type, BID AS eid, blog_title AS title, Time AS stime, blog_body AS description, UserName AS owner FROM blog_post b 
INNER JOIN replys r ON r.rid = b.BID WHERE b.action = "active" AND r.read = 1 
      UNION 
      SELECT "jaile" AS , jid AS eid, orgname AS title, jaildate AS stime, OrgDescription AS description, jailorgnowner AS owner FROM jailorgname 
      UNION 
      SELECT "articl" AS type, TID AS eid, Atitle AS title, Atime AS stime, Abody AS description, Auser AS owner FROM articlespost 

     ) foo WHERE owner = :ownerna'); 

我能夠輸出由該

型>它從

EID>來顯示主帖ID的

標題>顯示文章標題

所有者>顯示帖子作者

STIME展>展會時間

描述>顯示帖子內容

現在我的問題是顯示replys> RID,我想也把它放在我的php

+0

請大家我需要解決這個問題不要投我的問題 – Frank

+2

用更多的附加信息發佈您的問題。 –

+0

@ B.Balamanigandan這是我對這個問題唯一的解釋,如果你想我附上我的所有代碼,纔可以幫助我,我會 – Frank

回答

1

你必須有相同數量的列,每個SELECT的列必須是相同的數據類型相同的順序。因此,如果您想要回復ID,則必須爲每個未選擇的選擇添加空值。

$dsnnot->prepare(' 
SELECT * 
FROM (
    SELECT 
    "post" AS type, 
    BID AS eid, 
    blog_title AS title, 
    Time AS stime, 
    blog_body AS description, 
    UserName AS owner, 
    r.replyID 
    FROM blog_post b 
    INNER JOIN replys r ON r.rid = b.BID 
    WHERE b.action = "active" AND r.read = 1 

    UNION 

    SELECT 
    "jaile" AS type, 
    jid AS eid, 
    orgname AS title, 
    jaildate AS stime, 
    OrgDescription AS description, 
    jailorgnowner AS owner, 
    null AS replyID 
    FROM jailorgname 

    UNION 

    SELECT 
    "articl" AS type, 
    TID AS eid, 
    Atitle AS title, 
    Atime AS stime, 
    Abody AS description, 
    Auser AS owner, 
    null AS replyID 
    FROM articlespost 
) foo 
WHERE owner = :ownerna'); 
+0

對不起,它的工作,非常感謝 – Frank

+0

@Frank沒問題。下一次遇到SQL查詢時遇到問題,請嘗試在MySQL工作臺或phpmyadmin中運行它,或者運行SQL查詢所需的任何工具。這將幫助您快速識別錯誤。 – Terminus