2017-05-15 4 views
0

Ich führe diese Abfrage in einem PHP-Skript. Ich habe ein Papier und Benutzer Tabellen. Wenn jedes Papier einen Besitzer hat. Und jeder Benutzer hat eine Firmen-ID. Was ich will, ist, dass Benutzer, die die gleiche Firmen-ID haben, ihre jeweiligen Papiere sehen sollten, also habe ich versucht, diese Erlaubnis über paper_id und user_id zu überprüfen.mysql Join mit zusätzlichen Bedingungen

papers 
--------- 
id 
user_id 
paper_details 


users 
---------- 
user_id 
company_id 
user_details 

Um zu überprüfen, gibt es ein Ergebnis für ein Papier und einen Benutzer, den ich versuchte Abfrage unten. Ich habe nur $ user_id_variable und $ paper_id_variable Variablen während dieser Abfrage. Allerdings konnte ich ** $ user_id_variable ** an keiner Stelle in der Abfrage einfügen.

SELECT * FROM papers 
INNER JOIN 
users u on u.user_id= papers.user_id 
WHERE 
papers.user_id in (
    SELECT user_id FROM users WHERE users.company_id=u.company_id 
) 
AND papers.id = '$paper_id_variable' 

EDIT Beispieldaten und erwartete Ergebnis:

--papers-- 
id | user_id 
1 | 1 


--users-- 
user_id | company_id 
    1  | 10 
    2  | 10 
    3  | 11 

Nach Tabelle oben sollte die erwarteten Ergebnisse sein:

when paper id = 1 and user id 1 -> result count = 1 
when paper id = 1 and user id 2 -> result count = 1 
when paper id = 1 and user id 3 -> result count = 0 

Vielen Dank für Ihre Zeit ,,

+0

können Sie einige Beispieldaten und das erwartete Ergebnis hinzufügen? – Jens

+0

Überprüfen Sie die Bearbeitung bitte –

Antwort

1

können Sie Verwenden Sie diese Abfrage:

Hinweis: Speichern company_id in Ihrer Papiertabelle kann eine andere Idee sein. Vergessen Sie nicht, Indizes zu erstellen und keine Feldnamen wie user_id, paper_id zu verwenden. Verwenden Sie einfach id. Verwenden Sie für Ihre PHP-Variable $paperId instead von $paper_id_variable. Sie sind kein Muss, sondern gute Praktiken.

+0

Sie haben Recht, behoben. –

+0

INNER JOIN Benutzer auf u.user_id = papers.paper_id sollten INNER JOIN Benutzer auf u.user_id = papers.user_id sein. Und es funktioniert, vielen Dank :) Übrigens, ich komme aus Ankara, es ist schön jemanden von nahem zu sehen! –

+0

Gern geschehen Ali. :) Sorry für das falsche Feld, schrieb es hastig. Fest. –