根据另一个表ID查看表。 示例:查看来自国家/地区表的id = 5(来自用户表)的国家/地区。
我认为该任务需要子查询。
Select * from country where (select id from users where id = 5)
它不能正常工作。
修改
用户表
CREATE TABLE `user` (
`id` int(6) NOT NULL,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `user` (`id`, `name`) VALUES
('1', 'jackie'),
('2', 'maria'),
('3', 'sandra')
国家/地区表
CREATE TABLE `country` (
`name` varchar(30) NOT NULL,
`capital` varchar(30) NOT NULL,
) ;
INSERT INTO `country` (`name`, `capital`) VALUES
('Italy', 'Rome'),
('Portugal', 'Lisbon'),
('China', 'Beijing'),
('Norway', 'Oslo');
目的:用户可以标记访问过的国家/地区,因此该程序应能够显示用户访问过的国家/地区。
因此,我们需要一个查询来显示ID = 5的用户访问过的每个国家/地区的信息。
示例用户= 5访问了意大利和挪威。
更新新
添加用户访问过的国家/地区:
CREATE TABLE `country_visited`(
`userId` INT(6) not null,
`country` varchar(30) not null
);
INSERT INTO `country_visited` (`userid`,`country`) VALUES
('1', 'Spain'),
('2', 'Norway'),
('3', 'Italy'),
('4', 'Spain'),
('5', 'Italy'); #if this has visited 3 countries how do you add it?
答案 0 :(得分:1)
首先,您需要一个表来存储用户访问过的国家。例如
var productList = dbContext.FactorItems.GroupBy(fi => new { fi.ProductId, fi.Product.Name }).Select(g => new
{
ProductId = g.Key.ProductId,
ProductName = g.Key.Name,
TotalSoldQty = g.Sum(x => x.Qty)
}).OrderByDescending(x => x.TotalSoldQty).ToList();
插入表格:
CREATE TABLE countryVisited(
userId INT not null
country varchar(30) not null
)
您可以按以下方式加入:
INSERT INTO countryVisited (userId,country) VALUES
(5, 'Norway'),
(4, 'Spain'),
(5, 'Italy')
更好的做法是,向SELECT id, name, c.country, capital
FROM users u
INNER JOIN countryVisited cv
ON u.id = cv. userId
INNER JOIN country c
ON cv.country = c.country
WHERE u.id=5
表中添加一个id字段,然后仅将该值而不是国家名称存储在country
表中。
答案 1 :(得分:0)
您应该有另一个表,用于存储User
和Country
之间的关系。像这样:
UserCountries Table
UserID CountryId
------- -------------
1 1
1 2
2 1
2 3
然后您应该编写如下查询:
Select * from Country where Id in
(select CountryId from UserCountries
where UserId = 5)
答案 2 :(得分:0)
编辑完您的问题后,我可以理解。现在,您可以使用该结构解决问题了。
编辑用户表,例如user_id,user_name,Visited_country_id。
当用户选择访问的国家/地区时,然后使用逗号分隔符更新用户表visit_country_id。举个例子
user_id用户名Visited_country_id 5塞利姆1,3,4
现在,您可以从country_id所在的国家/地区执行查询(例如select *)(从user_id = 5的用户中选择Visited_country_id)