2017-03-11 2 views
0

Wie der Fremdschlüssel zu ändern, zu verwenden, wenn in where-KlauselWie verwenden, wenn Abfrage in where-Klausel

SELECT u.id,u.first_name, m.text,m.msg_id,m.u_from_id,m.u_to_id 
FROM user u 
JOIN messages m 
ON u.id= m.u_from_id 
WHERE m.ad_id=$ad_id 
    AND m.msg_id>'$last_msg_id' 
GROUP BY m.u_from_id 
ORDER BY m.u_from_id 

Diese Abfrage perfekt funktioniert, aber ich möchte einige Änderungen

wenn m.u_from_id = '6' dann prüfen u.id = m.to_id anstelle von u.id = m.u_from_id

(wenn der Fremdschlüssel (m.u_from_id) value = '6' dann ändern Der Fremdschlüssel m.to_id)

Antwort

0

Es gibt keine IF in mysql ist, wie es beispielsweise aus MS Access, das Äquivalent bekannt ist, verwenden Sie möchten, ist CASE:

SELECT u.id,u.first_name, m.text,m.msg_id,m.u_from_id,m.u_to_id 
FROM user u 
JOIN messages m 
ON CASE WHEN m.u_from_id = 6 THEN u.id=m.to_id ELSE u.id= m.u_from_id END 
WHERE m.ad_id=$ad_id 
    AND m.msg_id>'$last_msg_id' 
GROUP BY m.u_from_id 
ORDER BY m.u_from_id 
+0

Dank Bruder Code arbeiten gut für mich. – Sujith

Verwandte Themen