
如何通過查詢此資料庫來回答以下問題:
警方正在尋找一名棕色頭發的女性,該女性于 2016 年 9 月 8 日至 2016 年 10 月 24 日期間在健身房登記入住。該女性擁有銀牌會員資格。我們能找到這個女人的名字嗎?
我嘗試了以下查詢:
dbGetQuery(db,"
SELECT *
FROM get_fit_now_member
JOIN get_fit_now_check_in ON id = membership_id
WHERE check_in_date BETWEEN '20160909' AND '20161023' AND membership_status = 'silver'
")
這給了我以下輸出:

問題是我必須多次加入,同時必須添加不同的約束。我怎樣才能巧妙地解決這個問題?
uj5u.com熱心網友回復:
這是我撰寫查詢的方式:
SELECT m.name
FROM get_fit_now_member AS m
JOIN get_fit_now_check_in AS c ON m.id = c.membership_id
JOIN person AS p ON m.person_id = p.id
JOIN drivers_license AS d ON p.license_id = d.id
WHERE c.check_in_date BETWEEN '20160908' AND '20161024'
AND m.membership_status = 'silver'
AND d.hair_color = 'brown';
JOIN 只是一個運算子,就像 算術一樣。在算術中,您可以使用更多項來擴展運算式,例如a b c d. 在 SQL 中,您可以以類似的方式多次使用 JOIN。
我使用了相關名稱 (m, c, p, d) 來更方便地限定表名,因此我可以清楚地了解id每個連接條件中的含義,因為一個名為的列id存在于多個表中。
我還更改了日期運算式,因為我假設“介于”是指包含問題陳述中命名的兩個日期。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/520395.html
標籤:sql数据库
