2016-08-31 3 views
0

Ich habe folgende Tabellen mit Spalten:Warum MySQL-Auftrag nach Schlüsselwort funktioniert nicht wie erwartet mit GROUP nach Schlüsselwort?

1) Benutzer

user_id username 

2) Projekte

p_id p_name 

3) project_status

psdi p_id cdid cid sid short_list res_sent status_date 

4) Unternehmen

cid company_name 

5) Status

sid status_name status_order is_cv_sent 

6) projects_log

pl_id cdid project_name  p_id user_id status date_time  

nun in dieser projects_log Tabelle gibt es gleiche p_id Wert existieren.

Ich möchte alle einzigartigen p_id mit neuesten date_time zeigen. als DESC Auftrag ..

Ich benutze folgende Abfrage, kann aber nicht die Ergebnisse erhalten. Es zeigt mir nicht alle einzigartigen p_id als date_time DESC bestellen :(

$get_log = mysqli_query($link, "SELECT 
    pl.*, 
    u.username, 
    p.p_name, 
    c.company_name, 
    s.status_name, 
    ps.* 
    FROM projects_log AS pl 
    LEFT JOIN users AS u ON u.user_id = pl.user_id 
    LEFT JOIN projects AS p ON p.p_id = pl.p_id  
    LEFT JOIN project_status AS ps ON ps.p_id = pl.p_id 
    LEFT JOIN company AS c ON c.cid = ps.cid 
    LEFT JOIN status AS s ON s.sid = ps.sid 
    WHERE pl.cdid = '$cdid' GROUP BY pl.p_id 
    ORDER BY pl.pl_id DESC "); 

Update:

nun diese Abfrage aber zeigt mir Fehlermeldung:

mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given

$get_log = mysqli_query($link, "SELECT * FROM (
    SELECT 
    pl.*, 
    u.username, 
    p.p_name, 
    c.company_name, 
    s.status_name, 
    ps.* 
    FROM projects_log AS pl 
    LEFT JOIN users AS u ON u.user_id = pl.user_id 
    LEFT JOIN projects AS p ON p.p_id = pl.p_id  
    LEFT JOIN project_status AS ps ON ps.p_id = pl.p_id 
    LEFT JOIN company AS c ON c.cid = ps.cid 
    LEFT JOIN status AS s ON s.sid = ps.sid 
    WHERE pl.cdid = '$cdid' 
    ORDER BY pl.pl_id DESC) 
    as new_tab 
    GROUP BY new_tab.p_id "); 

Aktualisiert Fehlermeldung:

Error: Duplicate column name 'p_id' Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\dev\frontend\getContactDetails.php on line 648

Antwort

1

Diese Abfrage: -

Select * from (
SELECT 
    pl.pl_id,pl.cdid,pl.project_name,pl.p_id,pl.user_id,pl.status,pl.date_time, 
    ps.psid,ps.cid,ps.sid,ps.short_list,ps.res_sent,ps.status_date, 
    u.username, 
    p.p_name, 
    c.company_name, 
    s.status_name, 
    pl.pl_id grp_use 
    FROM projects_log AS pl 
    LEFT JOIN users AS u ON u.user_id = pl.user_id 
    LEFT JOIN projects AS p ON p.p_id = pl.p_id  
    LEFT JOIN project_status AS ps ON ps.p_id = pl.p_id 
    LEFT JOIN company AS c ON c.cid = ps.cid 
    LEFT JOIN status AS s ON s.sid = ps.sid 
    WHERE pl.cdid = '$cdid' 
    ORDER BY pl.pl_id DESC 
) as new_tab 
GROUP BY new_tab.grp_use 
+0

ich jetzt versuche. –

+0

Es zeigt mir Fehler. Mag sein, es ist für Komma oder etwas anderes. Kannst du es mit meinem gegebenen Stil machen? Ich meine mit Variable und mysqli_query? –

+0

Opps, ich habe deine Antwort versehentlich bearbeitet. Was ich gerade tue, ist jetzt in einem aktualisierten Abschnitt. –

Verwandte Themen