我的数据库在MySQL服务器上运行。 SQL知识:初学者。
数据说明: 我的数据库只有1个包含销售数据的表。该查询的相关列为:
现在,我想要一个SQL语句向我显示一张客户表,这些客户是前几年从未购买过的首次购买产品系列的客户。
因此,我们假设有一位客户在前几年购买了产品系列1,2,3,并在2018年首次购买了产品系列4。在之前的年份和2018年再次购买产品系列4的客户将不会显示在结果表中。结果表应显示:
这是我到目前为止的拙劣代码。有条件的话就完全撞到石头了。
class Databasehandle
{
public DataTable SelectQuery(string query)
{
SQLiteDataAdapter ad;
DataTable dt = new DataTable();
using (SQLiteConnection sqlite = new SQLiteConnection(Loadconnectionstring()))
{
try
{
SQLiteCommand cmd;
sqlite.Open();
cmd = sqlite.CreateCommand();
cmd.CommandText = query;
ad = new SQLiteDataAdapter(cmd);
ad.Fill(dt);
}
catch (SQLiteException ex)
{
Console.WriteLine(ex);
}
sqlite.Close();
}
return dt;
}
private static string Loadconnectionstring(string id = "default")
{
return ConfigurationManager.ConnectionStrings[id].ConnectionString;
}
}
注意:该表没有唯一键。希望它不会使事情复杂化。如果我错过了任何重要信息,请给我提示。
感谢您提供任何帮助或提示。
答案 0 :(得分:0)
您可以使用is [not] in ( ... )
语句组合sql语句。像这样:
select users who bought product 1,2,3,4 where user_id not in (select all users_id who did not buy product 4 in 2018)
编辑:您将需要一个ID,因为在is in
语句中,您只能比较值
或者您也可以自己学习编码,而不必尝试让其他人免费为您工作!