GVKun编程网logo

T-SQL:比较两个表-第二个表中不存在的记录(sql 两个表比较)

3

在本文中,我们将详细介绍T-SQL:比较两个表-第二个表中不存在的记录的各个方面,并为您提供关于sql两个表比较的相关解答,同时,我们也将为您带来关于Laravel-从一个表中获取不存在的记录,并附加

在本文中,我们将详细介绍T-SQL:比较两个表-第二个表中不存在的记录的各个方面,并为您提供关于sql 两个表比较的相关解答,同时,我们也将为您带来关于Laravel-从一个表中获取不存在的记录,并附加一个where子句、mysql – 使用SQL比较两个表中的标识符计数、MySQL----删除B表中A表不存在的记录、php – Laravel – 从附带where子句的另一个表中不存在的记录中获取记录的有用知识。

本文目录一览:

T-SQL:比较两个表-第二个表中不存在的记录(sql 两个表比较)

T-SQL:比较两个表-第二个表中不存在的记录(sql 两个表比较)

如果UNION ALL是T-SQL中的一个 附加 项。减法等于什么?

例如,如果我有一个表PEOPLE和一个表EMPLOYEES。而且我知道如果我EMPLOYEES从中删除记录,PEOPLE我将留给我的公司CONTRACTORS

有没有类似的方法UNION ALL?我不必指定任何字段名称的地方吗?我问的原因是这只是一个假设的例子。我需要对许多不同的表执行几次。假设的模式EMPLOYEESPEOPLE是相同的。

Laravel-从一个表中获取不存在的记录,并附加一个where子句

Laravel-从一个表中获取不存在的记录,并附加一个where子句

我有以下SQL表(在MySQL中):

students
+-----+------------+
| id  | first_name | 
+-----+------------+
| 01  | John       |
+-----+------------+
| 02  | Jane       | 
+-----+------------+
| 03  | Peter      | 
+-----+------------+

academics
+-----+-----------+----------+------+
| id  | year_start| year_end |status|
+-----+-----------+----------+------+
| 10  | 2016      | 2017     |1     |
+-----+-----------+----------+------+
| 20  | 2017      | 2018     |0     |
+-----+-----------+----------+------+

enrollments
+----+------------+-------------+
| id | student_id | academic_id |
+----+------------+-------------+
| 1  | 01         | 10          |
+----+------------+-------------+
| 2  | 02         | 20          |
+----+------------+-------------+
| 3  | 01         | 20          |
+----+------------+-------------+

如何获得来自学生students tableenrollments table谁没有报名参加本学年或谁没有记录在存在的enrollments table当前学年。

现在,我可以使用以下查询获取学生表单,该表单students table中没有注册详细信息enrollments table

$students = \DB::table('students')
        ->select(
            'students.id','first_name'
        )
        ->leftJoin('enrollments','enrollments.student_id','=','students.id')
        ->whereNull('enrollments.student_id')
        ->get();

根据上表中的数据,此查询将返回student Peter - 03

但是如何获得当前学年没有入学详细信息的学生?

这是我确定本学年的方式:

$current_academic = Academic::where('status',1)->first();

使用现有查询,我如何加入,academics table以便可以查询出当前学年没有入学记录的学生。将不胜感激您的认真回答和建议。

mysql – 使用SQL比较两个表中的标识符计数

mysql – 使用SQL比较两个表中的标识符计数

我正在尝试构建一个查询,比较两个具有相同结构的表

Table 1:
ID | Data 

Table 2:
ID | Data

ID是一个非唯一键(数据是可重复的,但ID |数据组合是唯一的).我需要一个ID列表,其中表2中这些ID的COUNT大于表1中的ID.

例如,如果

Table 1
a | data
a | data1    
b | data2

Table 2
a | data
a | data1
b | data2
b | data3

会产生输出“b”

这感觉应该很容易,但我的脑袋现在已经乱了.如果影响选项,我在MysqL中这样做.

最佳答案
要获得每个密钥的计数,

select count(*) as count,ID from Table1 group by ID

因此,将其用作from子句中的子查询,并加入表.

select tt1.ID
from (select count(*) as count,ID from Table1 group by ID) tt1
  inner join (select count(*) as count,ID from Table2 group by ID) tt2
     on tt1.ID = tt2.ID
where tt1.count < tt2.count

MySQL----删除B表中A表不存在的记录

MySQL----删除B表中A表不存在的记录

  1. DELETE FROM
  2. B
  3. WHERE NOT EXISTS(
  4. SELECT 1
  5. FROM
  6. A
  7. WHERE
  8. B.id=A.id
  9. )


B.id = A.id 就是A, B表主外键关系的字段。

php – Laravel – 从附带where子句的另一个表中不存在的记录中获取记录

php – Laravel – 从附带where子句的另一个表中不存在的记录中获取记录

我有以下sql表(在MySQL中):

students
+-----+------------+
| id  | first_name | 
+-----+------------+
| 01  | John       |
+-----+------------+
| 02  | Jane       | 
+-----+------------+
| 03  | Peter      | 
+-----+------------+

academics
+-----+-----------+----------+------+
| id  | year_start| year_end |status|
+-----+-----------+----------+------+
| 10  | 2016      | 2017     |1     |
+-----+-----------+----------+------+
| 20  | 2017      | 2018     |0     |
+-----+-----------+----------+------+

enrollments
+----+------------+-------------+
| id | student_id | academic_id |
+----+------------+-------------+
| 1  | 01         | 10          |
+----+------------+-------------+
| 2  | 02         | 20          |
+----+------------+-------------+
| 3  | 01         | 20          |
+----+------------+-------------+

如何从学生表和注册表中获取当前学年未注册的学生或当前学年的注册表中没有记录的学生.

现在,我可以通过此查询从学生表中获取没有注册详细信息的学生表:

$students = \DB::table('students')
        ->select(
            'students.id',
            'first_name'
        )
        ->leftJoin('enrollments','enrollments.student_id','=','students.id')
        ->whereNull('enrollments.student_id')
        ->get();

根据上表中的数据,此查询将返回学生Peter – 03.

但是我怎样才能获得当前学年没有入学细节的学生?

这就是我确定当前学年的方式:

$current_academic = Academic::where('status', 1)->first();

使用现有查询,我如何加入学术表,以便我可以查询当前学年没有注册记录的学生.
将非常感谢您的认真答复和建议.

解决方法:

$current_academic = Academic::where('status', 1)->first();

$students = \DB::table('students')
    ->select(
        'students.id',
        'first_name'
    )
    ->whereNotExists( function ($query) use ($current_academic) {
        $query->select(DB::raw(1))
        ->from('enrollments')
        ->whereRaw('students.id = enrollments.student_id')
        ->where('enrollments.academic_id', '=', $current_academic->id);
    })
    ->get();

我们来详细介绍一下:

1- whereNotExists子句将仅返回子查询中没有任何行的学生.

2-子查询选择注册表中存在的学生,他们的academics_id为10

希望这可以帮助

关于T-SQL:比较两个表-第二个表中不存在的记录sql 两个表比较的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Laravel-从一个表中获取不存在的记录,并附加一个where子句、mysql – 使用SQL比较两个表中的标识符计数、MySQL----删除B表中A表不存在的记录、php – Laravel – 从附带where子句的另一个表中不存在的记录中获取记录等相关知识的信息别忘了在本站进行查找喔。

本文标签: