例如,如果我有一个表"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)
谢谢
首先,我知道这个问题一般都是等于(=)和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)
即使除了等号之外什么都没有什么,我什么也得不到.我可以找到任何解释吗?
我创建了以下脚本,以便从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"}, …
我是oracle的新手,并且遇到了我的一个SQL查询问题.
有2个用户:User1
和User2
:
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)
我真的不知道该怎么做,并希望得到一些帮助.有什么想法吗?
我在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)
但这只是按天分组,而不是按月分组.我将如何按月分组?
我用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) 我正在使用类别,产品关系来查找数据.我的情况就像我有一个类别表和产品表与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)
为什么这不能给出适当的结果.
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)
以上可能吗,我将如何处理?
注意:此数据集的一些特征:
交易永远不会被删除,只会被添加。
产品永远不会被删除,而是以每分钟100s的速度添加(显然,这是一个复杂得多的实际用例背后的虚构示例)。其中的一小部分是暂时孤立的
我需要经常查询(每分钟最多一次),并且需要始终知道当前的一组孤立产品是什么
sql postgresql indexing materialized-views postgresql-performance
我是使用存储过程的新手.我有这个查询从表中获取值.
之后,我需要将结果插入另一个表.
这是我的查询:
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'.
如何使用存储过程同时进行选择和插入?谢谢
在表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 ×8
mysql ×4
oracle ×3
join ×2
plsql ×2
dom ×1
events ×1
if-statement ×1
indexing ×1
javascript ×1
jquery ×1
json ×1
oracle10g ×1
oracle11g ×1
php ×1
postgresql ×1
sql-server ×1
sql-update ×1
syntax ×1
triggers ×1