表名-城市
列-城市标识、城市名称
表状态
列-状态id、状态名称
表名-类别
列名-category_id,category_name
表名-新闻
列名-类别id、州id、城市id、标题、故事、作者等。。
我需要从城市、州和类别表中选择所有列,以便在新闻表中插入id。。。。
为此,我创建了sql查询并连接了上述三个表,但这显示了错误。。请帮我。。。
字段列表中的“state\u id”列不明确
字段列表中的“城市id”列不明确
字段列表中的列category_id不明确
我需要返回city、state和category表中的所有列
SELECT city_name,city_id,state_id,category_id,state_name,category_name,headline,author,story,source,photo,date from news left join
city on news.city_id=city.city_id left join state on news.state_id=state.state_id left join category on news.cat_id=category.category_id;
您需要指定列来自的表<代码>城市id在选择
列表中不明确。我认为这是正确的别名:
SELECT c.city_name, c.city_id, s.state_id, ca.category_id, s.state_name, ca.category_name,
n.headline, n.author, n.story, n.source, n.photo, n.date
from news n left join
city c
on n.city_id= c.city_id left join
state s
on n.state_id = s.state_id left join
category ca
on n.cat_id = ca.category_id;
注意,我引入了表别名。这些帮助使查询更易于编写和读取。
原因是,state和news表中都有state_id(city_id与news表中的city_id相同),而SQL引擎不知道使用哪一个。因此,我建议您在选择字段中使用表别名或表名称作为前缀。