0
用戶和產品的典型場景,如果用戶未分配任何產品但返回空值,則希望查詢返回'false'。如果沒有找到記錄返回false,則返回false
serviceRequest.sql = "SET @productId = ?;\
SELECT IF(product.productId = @productId, 'true', 'false') AS entitled FROM user_token \
INNER JOIN user_product ON user_token.user_id = user_product.user_id \
INNER JOIN product ON user_product.product_id = product.id AND authToken = ? AND product.productId = @productId;";
serviceRequest.values = [request.query.productId, request.query.authToken];
能否請您解釋一下爲什麼你開始從產品,而不是在我的情況user_token的加盟,這件事情我永遠不能避開 – user2727195
我的頭這篇文章可以幫助(HTTP:// blog.codinghorror.com/a-visual-explanation-of-sql-joins/)。基本上你想確保你總是回報產品。所以你從該表開始,並將「外連接」開始到信息是可選的表。既然你想檢查一個用戶是否存在,你可以將'outer join'加入到這個表中,然後你就可以檢查。如果你對該表進行「內部連接」並且該記錄不存在,則不會返回結果。 – sgeddes
謝謝,同樣如果你可以請看看這個來改善我對我問題的回答。 http://stackoverflow.com/questions/35528816/sql-multiple-statements-with-conditions – user2727195