表1名称: nfc_film
列名= id,film_id,标题,描述
表2名称: nfc_film_actor
列名= id,actor_id,film_id
表3名称: nfc_actor
列名= actor_id,first_name,last_name
问题:,我怎样才能把这3张桌子连在一起?
我想从表first_name和last_name中获得值nfc_actor,但是我的查询不工作。
我的问题是:
SELECT *
FROM nfc_film
INNER JOIN nfc_film_actor ON
nfc_film_actor.film_id = nfc_film.film_id
INNER JOIN nfc_actor ON
nfc_actor.actor_id = nfc_film_actor.actor_id
WHERE nfc_film.film_id = :filmid 发布于 2016-03-01 13:13:57
您不能在查询中使用*选择器,因为id、actor_id和film_id存在于多个表中,这肯定是错误的。您应该参考每个字段的特定名称。
如果您检查您的网络服务器error.log,您可以看到这一点。
也许你是说:
SELECT first_name, last_name FROM nfc_film
INNER JOIN nfc_film_actor
ON nfc_film_actor.film_id = nfc_film.film_id
INNER JOIN nfc_actor
ON nfc_actor.actor_id = nfc_film_actor.actor_id
WHERE nfc_film.film_id = nfc_film_actor.film_id发布于 2016-03-01 13:31:52
使用这个
SELECT nfc_actor.first_name,nfc_actor.last_name,
FROM nfc_film
INNER JOIN nfc_film_actor
ON nfc_film_actor.film_id = nfc_film.film_id
INNER JOIN nfc_actor
ON nfc_actor.actor_id = nfc_film_actor.actor_id
WHERE nfc_film.film_id = 'some_id'; 在“some_id”一词中给出胶片的id
https://stackoverflow.com/questions/35722937
复制相似问题