[英]SQL query to fetch data form another table
我一直在嘗試構建一個復雜的SQL查詢來從表中獲取一些與我需要“詢問”無關的表。
實際案例:
我有四個表:用戶,設備,首選項和user_devices。
問題是我需要獲取在表首選項中將首選項“monday”設置為true的所有“devices.key”用戶。
示例:我向數據庫詢問具有首選項星期一的設備是否為真,我獲得了一個帶有兩個設備密鑰的數組。
該查詢獲取用戶4的設備密鑰,但是我需要在數據庫中將“monday”設置為true(1)來獲取所有用戶的de device key。
SELECT key FROM devices, user_devices WHERE devices.id = user_devices.device_id AND user_devices.user_id = 4
非常感謝你。
你可以嘗試以下查詢
SELECT `devices`.`key`
FROM users
JOIN preferences ON users.id = preferences.user_id
JOIN user_devices ON users.id = user_devices.user_id
JOIN devices ON user_devices.device_id = devices.id
WHERE preferences.monday = true
顯然,您必須檢查並更正查詢中的首選項和用戶表的列名,以匹配您的數據庫列名。
你可以嘗試這個(我只是討厭JOIN; p):
SELECT DISTINCT(`devices`.`key`)
FROM `devices`,`user_devices`,`preferences`
WHERE `devices`.`id` = `user_devices`.`device_id`
AND `preferences`.`user_id` = `user_devices`.`user_id`
AND `preferences`.`monday` = 1
希望它會有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.