我有一个关于mysql查询的问题。我制作了两个表,tables1和表2。在table1中有2行数据,在table2中也是如此,它有2行数据,每个表有3个字段。在本例中,我希望将view和以下内容作为查询:
create view point as select table2.field2 from table1, table2;
我认为它将在table2中显示数据,其中有2行数据。但结果是显示了4行数据,其中每2行是一个相同的数据。当我尝试在table1中删除1行时,它的意思是删除1个数据,并且我尝试像上面那样输入查询。结果是正确的,它在table2中显示了2行数据。为什么在table1中有1
这是我的问题:
select distinct *
from purchase_records a
inner join purchase_items b on a.id = b.purchase_id
left join transactions c on a.id= c.purchase_id
它从两个表中获取记录。从左边得到一条记录,从右边得到多于一条的记录数。
问题是,当表返回记录时,它与精确的记录匹配,但根据行的左侧重复行的右侧。
如何在左侧获得一条记录,在右侧获得多条记录?我希望我的左连接显示一条记录,右连接显示与数据库中的记录一样多的记录。
数据仓库中有40个表。每天加载之后,我会检查表中是否有任何数据问题。这是使用select查询查找重复项来实现的。
SELECT COALESCE (SUM(DUPS),0) AS DUPS_COUNT, 'PLAYER' AS TABLENAME FROM (Select Count(1) AS DUPS from DW.PLAYER group by PLAYERID having count(1) > 1) A
UNION
SELECT COALESCE (SUM(DUPS),0) AS DUPS_COUNT, 'PlayerBalance' AS T
在此之后,我按工会合并了两个数据库:
select model,price
from pc
union
select model,price
from laptop
它是有效的,但是当我使用select语句来选择数据时。太不管用了。这是我的密码
select model
from ( select model,price
from pc
union
select model,price
from laptop
)
错误发生在最后一个运算符")“。我不知道为什么会出错,怎么解决
我有5个数据库,假设它们的名称是A B C D E
所有数据库都具有相同的表/结构/字段
我想使用表SMSOutgoing从5个数据库中获取结果,字段为uid
它看起来像这样:
SELECT * OR JOIN 5 database A B C D E F
FROM `table` SMSOutgoing
WHERE uid = 1
并不是所有的数据库都有uid=1,它需要显示哪个数据库有结果
我运行短信网关,每个电话/1号码使用一个数据库,这就是为什么有这么多不同的数据库。
我花了几个小时来解决它,但总是出错,我想我遵循了错误的指南(在一个数据库中连接多个表)
我迷路了,请帮帮忙谢谢
当我运行这个查询时,我会得到这个错误。
我知道这是不对的,但我做到了,我只想得到合理的答案。
当我们运行下面的代码时,为什么会出现此错误。
DECLARE @tbl TABLE ( id INT, Name VARCHAR(5) );
INSERT INTO @tbl
SELECT 1 AS Id, 142 AS Alphabets
UNION
SELECT 2, 'XYZ'
UNION
SELECT 2, 'ABC'
SELECT * FROM @tbl
当将
我试图使用全文搜索,但我得到了以下错误:
Error Code: 1214. The used table type doesn't support FULLTEXT indexes
我的疑问是:
SELECT u.firstName FROM
((SELECT firstName as firstName FROM crm_member)
UNION
(SELECT first_name as firstName FROM user)) as u
WHERE MATCH(u.firstName) AGAINST("*test*" IN BOO
我有一个包含大量记录的数据集。
Employee (varchar) | month (int) | Sales (money)
John | jan | 15
John | jan | 6
Hank | jan | 20
Mike | jan | 0
Hank | jan | 12
Pete | jan | 0
Pete | jan | 7
John | feb | 4
John | feb | 9
Hank | feb | 0
Pete | feb | 11
Mike | feb | 15
John | mar | 0
Hank | mar | 20
Mike | feb | 0
Pete
我得了一种很严重的虫子,这是我从未见过的。首先,我有一个简单的数组:
var myArray = ["123", "456", "789"]
现在,我想用一个for..in -循环迭代这个数组:
function mapData(list) {
for ( var i in list) {
var item = list[i];
if (item) {
// do something
}
}
}
在用mapData(myArray)调用方法之后,firebug在调试器中显示如下:
循环:I= 0
我有一个典型的非规范化表(tempTable),其中包含多个编号列(rep1、rep2等)。因此,我编写了一个脚本,将非规范化数据插入到规格化表(myTable)中:
insert into myTable
select idRep,rep FROM
(
select idRep, ISNULL(rep1,'') as rep FROM tempTable
union
select idRep, ISNULL(rep2,'') as rep FROM tempTable
union
select idRep, ISNULL
如果在任何一个表中存在单个数据点(userid),则需要搜索表的列表。
下面的查询给出了列userid的表列表
select table_name
from information_schema.columns
where column_name = 'userid'
我想做一个动态的Select userid from table_1...table_n来显示跨这些表的所有userid。
预期的psuedo查询:
select userid, table_name from table_1...table_n
where userid = 'search'
我有一个Access 2007数据库,其中有许多表,其中一些表相当大(100,000+记录);我创建了一个union query,将多个表中的一些相同类型的数据提取到一个大型查询中,以便进行数据透视表操作和报告。例如:
SELECT Language
FROM Table1
UNION ALL SELECT Language
FROM Table2
UNION ALL SELECT Language
FROM Table3;
这是可行的。但是,我很快就发现,当从Excel2007连接到数据源时,不会显示union query。因此,我创建了第二个查询来引用union query。如下所示:
S
我继承了一些代码,这些代码使用多个表来存储相同的信息,这取决于它的年龄(一个表用于当天、上个月等)。
目前,大多数代码在每个条件下都是重复的,我想尝试消除存储过程中的大部分重复。现在,重新设计设计不是一个选择,因为有许多应用程序依赖于当前的设计,而我无法控制它们。
到目前为止,我尝试过的一种方法是将所需的数据加载到临时表中,我发现这会对性能产生相当大的影响。我也尝试过使用结构如下的cte:
;WITH cte_table(...)
AS
(
SELECT ...
FROM a
WHERE @queried_date = CONVERT(DATE, GETDATE())
U
我有一个存储位置值的数据表,如下所示: CTY_CD、STATE_CD、COUNTRY_CD,我想从这个表中选择一个城市代码,并选择所有三个位置代码作为单独的行,另一列显示它是什么loc类型,因此查询结果将如下所示:
Given city code DEN:
Type | Code
CTY_CD DEN
STATE_CD CO
COUNTRY_CD US
有没有办法做到这一点?
我想知道在某一个月加入的雇员人数。下面是我的样本数据。
如果没有员工在一个月内加入查询,则查询应该显示为零,
我想出了一些类似的东西,但这只显示了在一个特定的月份里有一个学员的月份,
SELECT
COUNT(*) AS count,
CASE
WHEN MONTH(startDate) = 1 THEN 'JAN'
WHEN MONTH(startDate) = 2 THEN 'FEB'
WHEN MONTH(startDate) = 3 THEN 'MAR'
SELECT * FROM menu WHERE item_id = 1 OR item_id = 2 OR item_id = 3;
上面的语句返回3行。但是下面的语句只返回2行。
SELECT * FROM menu WHERE item_id = 1 OR item_id = 1 OR item_id = 2;
我明白为什么会这样,但是有没有办法强迫item_id 1两次返回?
我想要返回的内容的示例:
id -> 1芯片欧元2.50
id -> 1芯片欧元2.50
id -> 2可口可乐欧元1.60欧元6.60欧元
为什么甲骨文没有正确排序,或者我遗漏了什么?
select a from (
select '100##' as a from dual union
select '43##Y' as a from dual union
select '58##Y' as a from dual union
select '78##' as a from dual union
select '##' as a from dual union
select '##
我正在构建一个搜索框,查询数据库并自动填充下面的建议。
我希望能够按以下顺序优先考虑结果:
1 -精确匹配
2 -以相同的字母开头
3 -在数据库中的某个位置包含字符串
我有一条SQL语句
SELECT *
FROM Products
WHERE ProductName LIKE ?
OR ProductName LIKE ?
GROUP BY ProductName
ORDER BY ProductName ASC
LIMIT 10
在一个搜索单词“计算机”的例子中
当输入"co“时,应该显示
co -co
co微机
co计算机桌
ac co波
但
我无法使计算的列显示平均值。请参阅:
Cast(AVG(COALESCE(mnth1.HandledCalls,0)+COALESCE(mnth2.HandledCalls,0)+COALESCE(mnth3.HandledCalls,0)) as Decimal(8,2)) as Avg_Handled,
我如何让它显示3列的平均值?有时,可能不填充mnth2和mnth3。我尝试将合并后的月份除以一个计数,以防在任何给定时间有任何月份为空。我收到一个错误,提示选择列表无效。有什么建议吗?
我有一个非常复杂的数据库结构,我不能做一个最小的可复制示例,因为这不会显示这个问题所涉及的性能问题。所以,如果我的问题不够精确,请原谅。但也许你直接看到了我看不到的东西。所以我试着解释:
当我执行这个查询时:
SELECT workorder_id AS job_id
FROM ep_jobworkorders
LEFT JOIN ep_jobevents ON (workorder_id = event_workorderid)
WHERE (event_id IS NULL AND workorder_ownerss