标签: inner-join

多个INNER JOIN SQL ACCESS

查询表达式'tbl_employee.emp_id = tbl_netpay.emp_id中的语法错误(缺少运算符)INNER JOIN tbl_gross ON tbl_employee.emp_id = tbl_gross.emp_ID INNER JOIN tbl_tax ON tbl_employee.emp_id - tbl_tax.emp_ID'.

SELECT tbl_employee.emp_ID,
tbl_employee.emp_name,
tbl_gross.BasicSalary,
tbl_gross.totalOT,
tbl_netpay.totalGross,
tbl_tax.totalLate,
tbl_tax.allowance,
tbl_tax.SSS,
tbl_tax.PhilHealth,
tbl_tax.GSIS,
tbl_tax.HDMF,
tbl_netpay.totalDeduc,
tbl_netpay.emp_ti,
tbl_netpay.emp_wt,
tbl_netpay.emp_np
FROM  tbl_employee
INNER JOIN tbl_netpay ON tbl_employee.emp_id = tbl_netpay.emp_id
INNER JOIN tbl_gross ON tbl_employee.emp_id = tbl_gross.emp_ID
INNER JOIN tbl_tax ON tbl_employee.emp_id = tbl_tax.emp_ID;
Run Code Online (Sandbox Code Playgroud)

我总是得到上面的错误.

sql ms-access join inner-join

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

使用JOIN时WHERE Clause vs ON

假设我有以下T-SQL代码:

SELECT * FROM Foo f
INNER JOIN Bar b ON b.BarId = f.BarId;
WHERE b.IsApproved = 1;
Run Code Online (Sandbox Code Playgroud)

以下一行也返回相同的行集:

SELECT * FROM Foo f
INNER JOIN Bar b ON (b.IsApproved = 1) AND (b.BarId = f.BarId);
Run Code Online (Sandbox Code Playgroud)

这可能不是这里最好的案例样本,但这两者之间是否有任何性能差异?

sql t-sql sql-server inner-join sql-server-2008-r2

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

C#中DataTables的内部联接

设T1和T2是DataTable以下字段

T1(CustID, ColX, ColY)

T2(CustID, ColZ)
Run Code Online (Sandbox Code Playgroud)

我需要联合表

TJ (CustID, ColX, ColY, ColZ)
Run Code Online (Sandbox Code Playgroud)

如何在C#代码中以简单的方式完成此操作?谢谢.

c# datatable join inner-join

40
推荐指数
3
解决办法
15万
查看次数

使用LEFT JOIN和INNER JOIN插入

嘿所有我试图找出如何使用以下查询插入新记录:

SELECT user.id, user.name, user.username, user.email, 
  IF(user.opted_in = 0, 'NO', 'YES') AS optedIn  
FROM 
  user
  LEFT JOIN user_permission AS userPerm ON user.id = userPerm.user_id
ORDER BY user.id;
Run Code Online (Sandbox Code Playgroud)

INSERT到目前为止,我的查询是:

INSERT INTO user 
SELECT * 
FROM user 
  LEFT JOIN user_permission AS userPerm ON user.id = userPerm.user_id;
Run Code Online (Sandbox Code Playgroud)

但是,我不确定VALUE('','','','', etc etc)在使用左连接和内连接时该怎么做.

所以我要做的是:

User 表:

id    | name       | username    | password                 | OptIn
--------------------------------------------------------------------
562     Bob Barker   bBarker       BBarker@priceisright.com   1
Run Code Online (Sandbox Code Playgroud)

还有user_permission桌子

user_id   | Permission_id
-------------------------
562         4
Run Code Online (Sandbox Code Playgroud)

更新 这样吗? …

mysql inner-join left-join

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

在同一个表中为多个列执行内部联接

我有一个场景,我有点卡住了.假设我有一个关于颜色的调查,我有一个用于颜色数据的表,另一个用于人们的答案.

tbColors

color_code , color_name
     1     , 'blue'
     2     , 'green'
     3     , 'yellow'
     4     , 'red'
Run Code Online (Sandbox Code Playgroud)

tbAnswers

answer_id  ,  favorite_color   ,   least_favorite_color   ,  color_im_allergic_to
    1      ,         1          ,         2                            3  
    2      ,         3          ,         1                            4
    3      ,         1          ,         1                            2
    4      ,         2          ,         3                            4
Run Code Online (Sandbox Code Playgroud)

为了显示,我想编写一个SELECT,它显示了答案表,但使用了tbColors中的color_name列.

我理解"最愚蠢"的方法:在FROM部分中命名tbColors三次,为每个要替换的列使用不同的别名.

一个非愚蠢的方式怎么样?

sql oracle join inner-join

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

在SQL中使用DISTINCT内部联接

我有三个表,A,B,C,其中A是多对一B,B是多对一C.我想要一个A中所有C的列表.

我的表是这样的:A [id,valueA,lookupB],B [id,valueB,lookupC],C [id,valueC].我用两个嵌套的SELECT编写了一个查询,但我想知道是否有可能以某种方式使用DISTINCT进行INNER JOIN.

SELECT valueC
FROM C
INNER JOIN
(
    SELECT DISTINCT lookupC
    FROM B INNER JOIN
    (
        SELECT DISTINCT lookupB
        FROM A
    ) 
    A2 ON B.id = A2.lookupB
) 
B2 ON C.id = B2.lookupC
Run Code Online (Sandbox Code Playgroud)

编辑:表格相当大,A是500k行,B是10k行,C是100行,所以如果我做一个基本的内部连接并最后使用DISTINCT,有很多不必要的信息,如下所示:

SELECT DISTINCT valueC
FROM 
C INNER JOIN B on C.id = B.lookupB
INNER JOIN A on B.id = A.lookupB
Run Code Online (Sandbox Code Playgroud)

这非常非常慢(比我上面嵌套的SELECT慢一倍.

sql inner-join distinct

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

内部连接查询的相反

有人可以帮我写一个像这样的scernerio sql:

Table 1

2 columns: ID, Name

Table 2

2 columns: ID, Name
Run Code Online (Sandbox Code Playgroud)

我想要一个查询来显示表1中不在表2中的名称.因此,过滤掉表2中表2中的所有名称是结果查询.使用ID进行过滤而不是名称.

这将帮助我做我想做的事情.提前致谢

t-sql sql-server inner-join outer-join

36
推荐指数
3
解决办法
5万
查看次数

如何让SQL INNER JOIN接受null结果

我有以下查询:

SELECT TOP 25 CLIENT_ID_MD5, COUNT(CLIENT_ID_MD5) TOTAL 
FROM dbo.amazonlogs 
GROUP BY CLIENT_ID_MD5 
ORDER BY COUNT(*) DESC;
Run Code Online (Sandbox Code Playgroud)

哪个回报:

283fe255cbc25c804eb0c05f84ee5d52    864458
879100cf8aa8b993a8c53f0137a3a176    126122
06c181de7f35ee039fec84579e82883d    88719
69ffb6c6fd5f52de0d5535ce56286671    68863
703441aa63c0ac1f39fe9e4a4cc8239a    47434
3fd023e7b2047e78c6742e2fc5b66fce    45350
a8b72ca65ba2440e8e4028a832ec2160    39524
...
Run Code Online (Sandbox Code Playgroud)

我想使用此查询中返回的MD5检索相应的客户端名称(FIRM),因此行可能如下所示:

879100cf8aa8b993a8c53f0137a3a176    126122    Burger King
Run Code Online (Sandbox Code Playgroud)

所以我提出了这个问题:

SELECT a.CLIENT_ID_MD5, COUNT(a.CLIENT_ID_MD5) TOTAL, c.FIRM 
FROM dbo.amazonlogs a 
  INNER JOIN dbo.customers c 
    ON c.CLIENT_ID_MD5 = a.CLIENT_ID_MD5
GROUP BY a.CLIENT_ID_MD5, c.FIRM 
ORDER BY COUNT(*) DESC;
Run Code Online (Sandbox Code Playgroud)

这返回类似于:

879100cf8aa8b993a8c53f0137a3a176    126122    Burger King
06c181de7f35ee039fec84579e82883d    88719     McDonalds
703441aa63c0ac1f39fe9e4a4cc8239a    47434     Wendy's
3fd023e7b2047e78c6742e2fc5b66fce    45350     Tim Horton's
Run Code Online (Sandbox Code Playgroud)

哪个有效,除非我需要为c.FIRM返回一个空值,如果给定的MD5没有相应的FIRM.例如:

879100cf8aa8b993a8c53f0137a3a176    126122 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server join inner-join

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

具有多个表的多个内部联接

所以我有四张桌子.每个表都有一个前一个表id的id.所以我在点击表中有一个ID和一个ID来自它的广告.在广告表中,它具有广告ID和来自广告系列的ID.所以这是一个例子.

Table4 -
id   company      table_id
11     hp           20
12     apple        23
13     kohls        26  
14     target       21
15     borders      28

Table3 - 
id    value    table2_id
21     ks          53
22     al          54
23     tx          53 
24     fl          55
25     co          51

Table2 -
id    value    table1_id
51     ks          34
52     al          34
53     tx          33 
54     fl          35
55     co          31

Table1 -
id    value    
31     ks        
32     al          
33     tx          
34     fl          
35     co  
Run Code Online (Sandbox Code Playgroud)

因此,为了找出表4中的值来自何处,我需要回顾每个表并检查它们具有哪个ID.基本上,我想知道表1中的哪些值与表4中的值相关联.

表4作为网站访问者和表1作为互联网广告.我想知道哪些访问者来自哪些广告.不幸的是,数据已设置好,因此我只能从访问者到源代码,广告组再到广告.那有意义吗?

无论如何,我想知道是否使用4个内部连接是这个问题的最佳策略,还是有一些我不知道的更简单的mysql解决方案.

mysql sql join inner-join

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

我什么时候应该使用INNER -LOOP- JOIN而不是INNER JOIN

今天我在SQL Server中了解了一个叫做的东西INNER LOOP JOIN.

这是什么意思?(谷歌没有帮助..或者我应该说......关于它的博客文章有点......技术性,并且让我大吃一惊).

此外,使用INNER LOOP JOIN超标准的一些常见场景是什么好主意INNER JOIN

sql-server inner-join sql-server-2008 join-hints

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