2016-07-09 8 views
-2

Ich habe versucht, Union drei und beitreten eine Tabelle, ich war erfolgreich bei der Auswahl nur mit inneren Join und auch die innere Join und Union bu mein Problem ist, Antwort ID ich habe viele Dinge versucht, Antwort-ID angezeigt werden, aber halten Störung zu erhalten, während andere Arbeit feineSql wählen innere Joine und Union 3 Tabellen

Bellow sQL geben Sie mir diese

 //$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'); 

ich konnte Ausgabe dieses

Typ> Show, wo es von

kam

eid> Zeige Hauptpost ids

title> anzeigen Post-Titel

owner> anzeigen Beitrag Autor

stime> Zeit anzeigen

Beschreibung> Post Inhalt anzeigen

Jetzt ist mein Problem zu zeigen replys> RID, ich möchte es auch in meinem php

+0

Bitte Jungs ich muss das beheben nicht meine Frage abstimmen – Frank

+2

Stellen Sie Ihre Frage mit viel mehr zusätzlichen Informationen. –

+0

@ B.Balamandigandan das war die einzige Erklärung, die ich für diese Frage habe, wenn Sie möchten, dass ich alle meinen Code anhängen, bevor Sie mir helfen können, ich werde – Frank

Antwort

1

zeigen Sie müssen die gleiche Anzahl von Spalten haben und die Spalten aus jeder SELECT müssen den gleichen Datentyp in der sein die selbe Reihenfolge. Also, wenn Sie die Antwort-ID wollen, müssen Sie eine Null zu jedem hinzufügen, wählen Sie nicht aus.

$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

Sorry es hat funktioniert, vielen Dank – Frank

+0

@Frank kein Problem. Wenn Sie das nächste Mal Probleme mit einer SQL-Abfrage haben, versuchen Sie es in der MySQL Workbench auszuführen, oder von phpmyadmin, oder von einem anderen Tool, mit dem Sie SQL-Abfragen ausführen müssen. So können Sie Fehler schnell identifizieren. – Terminus