小编Haw*_*awk的帖子

MySQL中逗号分隔的连接和语法连接之间有什么区别?

例如,如果我有一个表"Person",其列"id"引用表"Worker"中的列"id"

这两个查询之间有什么区别?它们产生相同的结果.

SELECT * 
FROM Person 
JOIN Worker 
  ON Person.id = Worker.id;
Run Code Online (Sandbox Code Playgroud)

SELECT * 
FROM Person, 
     Worker 
WHERE Person.id = Worker.id;
Run Code Online (Sandbox Code Playgroud)

谢谢

mysql sql syntax join

86
推荐指数
4
解决办法
7万
查看次数

等于(=)与LIKE的日期数据类型

首先,我知道这个问题一般都是等于(=)和LIKE.在这里,我在ORACLE数据库上查询日期类型数据,我发现以下内容,当我以这种方式编写select statment时:

SELECT ACCOUNT.ACCOUNT_ID, ACCOUNT.LAST_TRANSACTION_DATE
FROM ACCOUNT
WHERE ACCOUNT.LAST_TRANSACTION_DATE LIKE '30-JUL-07';
Run Code Online (Sandbox Code Playgroud)

我得到了我正在寻找的所有行.但是当我使用等号时=:

SELECT ACCOUNT.ACCOUNT_ID, ACCOUNT.LAST_TRANSACTION_DATE
FROM ACCOUNT
WHERE ACCOUNT.LAST_TRANSACTION_DATE = '30-JUL-07';
Run Code Online (Sandbox Code Playgroud)

即使除了等号之外什么都没有什么,我什么也得不到.我可以找到任何解释吗?

sql oracle

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

使用PL/SQL将JSON解析为Oracle表

我创建了以下脚本,以便从Oracle SQL Developer中读取Mobile App DB(基于MongoDB)的数据:

DECLARE
  l_param_list     VARCHAR2(512);

  l_http_request   UTL_HTTP.req;
  l_http_response  UTL_HTTP.resp;

  l_response_text  VARCHAR2(32767);
BEGIN

  -- service's input parameters

  -- preparing Request...
  l_http_request := UTL_HTTP.begin_request ('https://api.appery.io/rest/1/db/collections/Photos?where=%7B%22Oracle_Flag%22%3A%22Y%22%7D'
                                          , 'GET'
                                          , 'HTTP/1.1');

  -- ...set header's attributes
  UTL_HTTP.set_header(l_http_request, 'X-Appery-Database-Id', '53f2dac5e4b02cca64021dbe');
  --UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_param_list));

  -- ...set input parameters
 -- UTL_HTTP.write_text(l_http_request, l_param_list);

  -- get Response and obtain received value
  l_http_response := UTL_HTTP.get_response(l_http_request);

  UTL_HTTP.read_text(l_http_response, l_response_text);

  DBMS_OUTPUT.put_line(l_response_text);
  insert into appery values(l_response_text);
  -- finalizing
  UTL_HTTP.end_response(l_http_response);


EXCEPTION
  WHEN UTL_HTTP.end_of_body 
    THEN UTL_HTTP.end_response(l_http_response);  
END;
/

响应(l_response_text)是类似JSON的字符串.例如:

[{"Postcode":"47100","OutletCode":"128039251","MobileNumber":"0123071303","_createdAt":"2014-11-10 06:12:49.837","_updatedAt":"2014-11-10 06:12:49.837"}, …

sql json plsql oracle11g

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

如何在Oracle中实现条件更新?

我是oracle的新手,并且遇到了我的一个SQL查询问题.

有2个用户:User1User2:

     Tab1               Tab2
    --------            -------- 

    EmpNo               EmpNo
    EmpName             EmpName
    ContactNo           Salary
    Location    

User2具有User1.Tab1中的所有权限,并且两个表之间没有外键关系.

问题:

我想在tab2" NameDesignation"中添加一列,并且我想在检查以下条件后在此列中插入值:

WHEN User1.Tab1.EmpNo = User2.Tab2.EmpNo THEN
   INSERT INTO Tab2 VALUES (&designation)
Run Code Online (Sandbox Code Playgroud)

我真的不知道该怎么做,并希望得到一些帮助.有什么想法吗?

oracle oracle10g

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

DATETIME字段上的GROUP BY月份

我在mysql中有以下查询:

SELECT title, 
       added_on 
FROM   title 
Run Code Online (Sandbox Code Playgroud)

结果如下:

Somos Tão Jovens                        2013-10-10 16:54:10
Moulin Rouge - Amor em Vermelho         2013-10-10 16:55:03
Rocky Horror Picture Show (Legendado)   2013-10-10 16:58:30
The X-Files: I Want to Believe          2013-10-10 22:39:11
Run Code Online (Sandbox Code Playgroud)

我想得到每个月的标题数,所以结果看起来像这样:

Count               Month
42                  2013-10-01
20                  3013-09-01
Run Code Online (Sandbox Code Playgroud)

我能想到的最接近的是:

SELECT Count(*), 
       Date(timestamp) 
FROM   title 
GROUP  BY Date(timestamp) 
Run Code Online (Sandbox Code Playgroud)

但这只是按天分组,而不是按月分组.我将如何按月分组?

mysql sql

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

以编程方式在子inAppBrowser中更改selectMenu选项

我用javascript打开一个窗口 window.open()

打开的窗口具有以下代码:

jQuery(document).ready(function(){
    jQuery("#lang").change(function(){
        var lname = jQuery(this).val().split("-");
        window.location = '<?php echo JURI::root();?>index.php?lang='+lname[0];
        alert(lname[0]);
        alert('lang '+lang);
    });
Run Code Online (Sandbox Code Playgroud)

现在,在"lang"选择菜单更改时触发此代码.我以编程方式打开窗口,window.open并设法使用将数据填充到窗口字段中Window.executeScript().例如,这对我有用:

loginWindow.executeScript({
   code: "jQuery('input#username').val('10500050')"
});
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试按照相同的逻辑更改selectMenu中所选项目的同一窗口中的'lang'时,我失败了.

尝试

我尝试了以下几行executeScript;

code: "$('#lang').val('ms')"
code: "jQuery('#lang option[value=ms]').prop('selected', true)"
code: "jQuery('#lang').selectmenu('value', 'ms')"
Run Code Online (Sandbox Code Playgroud)

用这些在下一个executeScript触发变化

code: "$('#lang').trigger('change')"
code: "$('#lang').selectmenu('refresh', true)"
code: "jQuery('#lang').selectmenu('refresh')"
code: "jQuery('#lang').selectmenu('change')"
code: "$('#lang').change()"
Run Code Online (Sandbox Code Playgroud)

他们都没有帮助.我不确定我是否应将它们合二为一executeScript.我不知道如何去做.打开的窗口来自不同的域.

我在这里错过了什么吗?

开场白方的整个代码如下:

loginWindow.addEventListener( 'loadstop', function() {
    alert('test');
    var loop = setInterval(function() {
       loginWindow.executeScript({
          code: "jQuery('input#username').val('10500050')"
          },
          function( values ) {
             var give …
Run Code Online (Sandbox Code Playgroud)

javascript jquery events dom triggers

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

从mysql中的两个表中查找不常见的数据

我正在使用类别,产品关系来查找数据.我的情况就像我有一个类别表和产品表与categoryid和产品类型.不,假设我有一个特定的类型,我想找到特定类型的产品没有的那些类别.表结构就像

Category Table
____________
|Id|Category|
| 1|    X   |
_____________

Product Table
____________________________
|ID | Product|Category| Type|
| 1 | Y      | 1      | 2   |
_____________________________
Run Code Online (Sandbox Code Playgroud)

我可以通过使用子查询来找到它

SELECT * 
FROM   category 
WHERE  id NOT IN(SELECT category 
                 FROM   product 
                 WHERE  type = 2); 
Run Code Online (Sandbox Code Playgroud)

有没有办法通过另一种方式获得它

我也喜欢使用JOIN

SELECT * 
FROM   category AS c 
       JOIN products AS p 
         ON c.id <> p.category 
WHERE  p.type = 2 
Run Code Online (Sandbox Code Playgroud)

为什么这不能给出适当的结果.

php mysql sql join

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

索引以查找不存在外键的记录

table products
id primary_key

table transactions
product_id foreign_key references products
Run Code Online (Sandbox Code Playgroud)

下面的SQL查询非常慢:

SELECT products.* 
FROM   products 
       LEFT JOIN transactions 
              ON ( products.id = transactions.product_id ) 
WHERE  transactions.product_id IS NULL; 
Run Code Online (Sandbox Code Playgroud)

在1亿个产品记录中,可能只有100条记录中没有相应交易的产品。

该查询非常慢,因为我怀疑它正在进行全表扫描以查找那些空外键产品记录。

我想创建这样的部分索引:

CREATE INDEX products_with_no_transactions_index 
ON (Left JOIN TABLE 
    BETWEEN products AND transactions) 
WHERE transactions.product_id IS NULL;
Run Code Online (Sandbox Code Playgroud)

以上可能吗,我将如何处理?

注意:此数据集的一些特征:

  1. 交易永远不会被删除,只会被添加。

  2. 产品永远不会被删除,而是以每分钟100s的速度添加(显然,这是一个复杂得多的实际用例背后的虚构示例)。其中的一小部分是暂时孤立的

  3. 我需要经常查询(每分钟最多一次),并且需要始终知道当前的一组孤立产品是什么

sql postgresql indexing materialized-views postgresql-performance

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

如何使用存储过程在mysql中选择和插入值

我是使用存储过程的新手.我有这个查询从表中获取值.

之后,我需要将结果插入另一个表.

这是我的查询:

   SELECT a.gender, 
          b.purpose_abroad_as_per_recorded_travel, 
          b.country_name 
   FROM b   LEFT JOIN a
   ON b.person_id=a.id
Run Code Online (Sandbox Code Playgroud)

我计划将所有结果插入表'c'.

如何使用存储过程同时进行选择和插入?谢谢

mysql sql sql-server stored-procedures insert-select

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

IF-ELSE语句:根据另一个列创建一个列

在表JAN07中,我有一列TEMPO_INTERCORSO(数字(10,0)),我想创建另一列ANTE_POST(数字(1)),当TEMPO_INTERCORSO> 0时为'0',否则为'1'.

IF (TEMPO_INTERCORSO > 0) THEN
   UPDATE JAN07 SET ANTE_POST = 1
ELSE
   UPDATE JAN07 SET ANTE_POST = 0
END IF;
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多不同的方法,你可以在网上找到(例如在ELSE之前的";":有时候,有时候没有),但它仍然无法正常工作.

IF (TEMPO_INTERCORSO = 0) THEN
Report error -
Comando sconosciuto
Run Code Online (Sandbox Code Playgroud)

一些想法?

ps =我也试过了JAN07.TEMPO_INTERCORSO!

sql oracle plsql if-statement sql-update

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