小编Mik*_*ll'的帖子

SQL查询不返回唯一结果.我需要使用哪种类型的联接?

我正在尝试运行以下MySQL查询:

SELECT * 
FROM user u 
JOIN user_categories uc ON u.user_id = uc.user_id 
WHERE (uc.category_id = 3 OR uc.category_id = 1)
Run Code Online (Sandbox Code Playgroud)

它目前返回:

Joe,Smith,60657,male
Joe,Smith,60657,male
Mickey,Mouse,60613,female
Petter,Pan,60625,male
Petter,Pan,60625,male
Donald,Duck,60615,male
Run Code Online (Sandbox Code Playgroud)

如果用户属于这两个类别,则它当前将返回两次.如何在不使用SELECT DISTINCT的情况下仅返回用户一次,无论他们属于多少个类别?

mysql sql

1
推荐指数
1
解决办法
249
查看次数

在SQL Server中创建单独的数据库会给我带来更好的性能吗?

总而言之,我是一名贸易程序员,但对于这个特殊的项目,我自己也是DBA.这是我面临的情景:

适用于400-1000客户的Web应用程序.客户是"实体公司",每个公司都有n个.每个客户(公司)平均拥有1GB的数据(总共约2亿行).每个公司在存储的数据类型方面可能有80%的相似数据.另外20%是公司自己定义的自定义数据(基本上是自定义字段).

当你发现客户需要相当不错的反应时间时,我试图找出以便宜的方式扩展这种方法的最佳方法.例如,客户X可能想要获取姓氏为"史密斯"的所有记录,以及像"555"这样的电话,其中客户Y可能想要获取帐号等于"1526A"的所有记录.

最重要的是,性能是关键,我发现很难决定索引什么,如果这甚至会帮助我,因为这些人基本上可以通过UI创建自己的查询.

我的问题是,你会做什么?您是否认为将每个客户分解为自己的数据库是明智的?目前的DB总大小约为400GB.

这是一个完整的重写,所以我有幸能够在需要时重新开始.任何想法,提示将不胜感激.

sql-server database-design multi-tenant

1
推荐指数
1
解决办法
525
查看次数

在真实世界模型中,这种SQL结构(在mysql数据库中)是否有效?

我希望能够在现实世界环境中获得有关Web应用程序的示例mysql结构的反馈,这些结构来自之前在现实世界中使用过复杂mysql的人们.

例子〜

教育管理应用.80,000名用户.每个用户都有自己的数据库,其中包含-messages -uploads -grades -info的表

以及其他功能的更多表格

我想知道的是,在这样的情况下,任何信息都会受到赞赏

这个数据库模型有效吗?(基本上就像80,000个数据库一样)或者是否存在(我有这种瘙痒的感觉)更好的方法吗? - 这需要什么样的专用服务器?80,000个数据库,每个数据库包含10-15个包含TONS表的表,所有80,000人每天访问该站点20-30次,持续10-20个会话

mysql sql database database-design multi-tenant

1
推荐指数
1
解决办法
154
查看次数

然后,SQL,多个if语句,否则?

我是SQl的新手并且尝试自己学习.

我正在学习SQL中if和else语句的用法

这里是我尝试使用的数据,如果或者在下表中声明,我希望根据年龄使用sql查询更新注释,假设年龄介于22和25之间,评论"下毕业"

Age: 26 to 27, comments " post graduate"
Age: 28 to 30, comments "working and single"
Age: 31 to 33, comments " middle level manager and married"
Run Code Online (Sandbox Code Playgroud)

表名:人

personid  lastname  firstname   age comments
1         Cardinal  Tom         22
2         prabhu    priya       33
3         bhandari  abhijeet    24
4         Harry     Bob         25
5         krishna   anand       29
6         hari      hara        31
7         ram       hara        27
8         kulkarni  manoj       35
9         joshi     santosh     28
Run Code Online (Sandbox Code Playgroud)

sql

1
推荐指数
1
解决办法
2万
查看次数

在Oracle中使用日期索引

我有一个查询以检索货运信息。

我希望能够在日期列上使用索引。此列的where子句看起来像shipment.end_alloc_date >= to_date( last week )。当我添加shipment.end_alloc_date <= to_date( next week )索引时使用。但是,我不想使用第二行。

有谁知道如何强迫Oracle仅使用第一个限制来使用此日期索引?


该表包含约180.000行,并且两个sql都检索50行。但是,当我运行解释计划时,end_alloc_date上的索引仅在第二个sql中使用。怎么会导致强迫Oracle使用索引呢?

1) select <some data> from shipment where shipment.end_alloc_date >= to_date( last week )

2) select <some data> from shipment where shipment.end_alloc_date >= to_date( last week ) and shipment.end_alloc_date <= to_date( next week )

sql oracle

0
推荐指数
1
解决办法
860
查看次数

c#执行大型SQL语句

我有一个大的SQL语句,我想在c#中运行,但是,我看到的所有示例都是针对长度为一行的SQL语句.

到目前为止,这是我的C#代码.在我的代码之后,我已经包含了Query,我想要运行.


C#查询代码

private void button4_Click(object sender, EventArgs e)
        {
           System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection();
           conn.ConnectionString = "Driver={Oracle in OraClient11g_home1};" +
                                   "Dbq=" + "database" +
                                   ";Uid=" + "admin" + ";Pwd=" + "admin" + ";";
           try
           {
               conn.Open();
               OdbcCommand com = new OdbcCommand("select count(*) from user_tables;", conn);
               com.CommandType = CommandType.Text;
               OdbcDataReader rdr = com.ExecuteReader();
               while (rdr.Read())
               {
                   var mystring = rdr.GetString(0);
                   MessageBox.Show(mystring);
               }                
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message); 
           }
           conn.Close();
        }
Run Code Online (Sandbox Code Playgroud)


查询运行

SELECT user_id,
         user_name,
         user_name_full,
         (SELECT user_name
            FROM MD_SITE_USER …
Run Code Online (Sandbox Code Playgroud)

c# sql oracle

0
推荐指数
2
解决办法
1928
查看次数

MySQL - MAX() 返回 null

我想从我的 mysql 数据库中获取每天的最高室外温度。它返回我的所有数据,但不返回外部温度。它始终为空。有人能帮我吗?这是mysql代码:

(SELECT MAX(tempOutside), tempInside, pressure, datetime 
 from weather 
 WHERE datetime BETWEEN (CURDATE() - INTERVAL 30 DAY) AND CURDATE() 
 GROUP BY MONTH(datetime), DAY(datetime));
Run Code Online (Sandbox Code Playgroud)

现在返回:

null 18.4 1011 2014-01-23 00:15:04
null 19.2 1010 2014-01-24 00:00:05
null 19.6 1009 2014-01-25 13:15:02
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?一个解释会很好。谢谢

编辑:

我发现了错误。在我的 PHP 文件中我写了$row_array['tempOutside'] = ...在我更改 mysql 代码后MAX(tempOutside) AS tempOutside, ...它起作用了!

但我现在有一个新问题。它现在返回 maxOutSide 温度,但内部压力值和时间戳不是记录最大外部温度时记录的值。我该如何解决这个问题?应该是这样的:最大室外温度是在下午 5 点记录的 - 当时的内部和压力值是:...

php mysql sql max

-1
推荐指数
1
解决办法
1757
查看次数

标签 统计

sql ×6

mysql ×3

database-design ×2

multi-tenant ×2

oracle ×2

c# ×1

database ×1

max ×1

php ×1

sql-server ×1