我幾年沒有寫SQL查詢,而且有點生疏。我正試圖編寫一個查詢來選擇基於給定演員姓名的所有電影。所以給定'sandra'這個名字,我想要選擇電影表中在主角表的first_name或last_name中有'sandra'的影片。有一個film_actor錶鏈接這兩個表,但我無法弄清楚如何正確地做到這一點。我得到的最接近的是SELECT * FROM film f INNER JOIN film_actor fa ON fa.actor_id = a.actor_id WHERE a.first_name LIKE '%sandra%';
,它返回演員和電影的INNER JOIN表。這個結果還有一個film_id字段,我想用它來選擇電影表中的所有電影。對MySQL Sakila數據庫的簡單查詢
1
A
回答
1
我認爲這是你想要的。
SELECT --- generally doing select * from is a bad practice
f.films,
a.first_name,
a.last_name
FROM films f
JOIN film_actor fa ON fa.film_id = f.id --- JOIN defaults to INNER JOIN -- the film_actor table im assuming has an actor id and a film id to join off of
JOIN actor a ON a.id = fa.actor_id
WHERE a.last_name LIKE"%sandra%" OR a.first_name LIKE"%sandra%" --- if you want the first_name to only match "sandra" then just do = "sandra" instead of LIKE "%sandra%"
+0
非常感謝。工作很好 –
+0
隨時:)感謝+1 –
1
使用此之一:
SELECT *
FROM film f
INNER JOIN film_actor fa
ON f.film_id = fa.film_id
INNER JOIN actor a
ON fa.actor_id =a.actor_id
WHERE a.first_name LIKE '%sandra%' OR a.last_name LIKE '%sandra%'
我想,該表稱爲film
和表稱爲film_actor
與一個稱爲film_id柱,這是PK(主鍵)用於film
表和FK相關聯的film_actor
表。如果名稱與我所假設的不完全相同,請相應地更改它們。
現在,如果您加入上述三個表並在WHERE
子句中使用OR
語句,您將獲得您想要的結果。請致電here。
+0
不是fa.actor_id = a.id而不是a.actor_id? –
相關問題
- 1. 簡單的數據庫查詢爲mysql
- 2. 嵌套選擇查詢 - mysql sakila數據庫
- 3. 簡單的數據庫查詢函數
- 4. 簡單的數據庫查詢按鈕
- 5. MYSQL查詢的簡單數據範圍
- 6. 關於Sakila數據庫的條件查詢
- 7. 簡單的數據庫查詢-GAE cloudSQL
- 8. 簡單的ASP.NET數據庫查詢
- 9. 簡單的數據庫查詢
- 10. 簡單的mysql數據庫
- 11. 簡單計數Mysql查詢
- 12. 簡單的查詢與簡單的數據庫
- 13. SQLite C#簡單數據庫查詢
- 14. MySQL簡單查詢
- 15. 的MySQL數據庫查詢
- 16. 單MySQL查詢在多個數據庫
- 17. 簡單的mysql查詢
- 18. MySQL:簡單的子查詢
- 19. 簡單的mySQL子查詢
- 20. 簡單的mySQL查詢!
- 21. 簡單的MySQL查詢
- 22. mySQL查詢 - 簡單的數學問題
- 23. 查詢MySQL數據庫
- 24. MYSQL數據庫IFNULL查詢
- 25. 查詢MySQL數據庫
- 26. 查詢MySQL數據庫
- 27. Mysql數據庫查詢
- 28. mysql查詢數據庫
- 29. 查詢數據庫MySQL
- 30. MySQL數據庫表查詢
演員表在哪裏加入? 'a.actor_id'但我沒有看到演員表 –