2016-11-29 124 views
2

將另一個mysql查詢放在PHP中的where子句中的最簡單方法是什麼?將另一個查詢放在where子句中mysql和php

例如,我曾嘗試:

 $sql = "SELECT app, description FROM all-apps WHERE app!='(SELECT user, app FROM users-apps WHERE user="$user_name")'"; 

我需要攜帶了所有的應用程序數據庫中的條目。然後檢查用戶是否在他的列表中具有相同的應用程序名稱。如果是這樣,它不會出現。

基本上有2個數據庫,一個擁有所有應用程序,另一個擁有用戶使用的應用程序,我需要查詢來查找用戶未使用的所有應用程序。

如果此問題達到標準,請評論以下內容。請有意見,以便我可以在未來解決我的錯誤。

回答

2

一些變化需要

"SELECT app, description FROM all-apps WHERE app NOT IN (SELECT app FROM users-apps WHERE user='{$user_name}')"; 

注意,這和你原來的查詢可以讓你容易受到SQL注入。請使用PDO準備的語句。

0

感謝,所有的你的幫助,我能夠得到這個查詢工作:

$sql = "SELECT * FROM all_apps WHERE app NOT IN (SELECT app FROM users_apps WHERE user='{$user_name}') "; 

這是通過先選擇一個表。然後選擇你想要的那個列。然後如果你想要它在或不在然後在括號中您的第二個查詢。確保只有選擇一列。如果有多個結果,則IN子句也適用。