相关疑难解决方法(0)

4506
推荐指数
24
解决办法
228万
查看次数

SQL查询从多个表返回数据

我想知道以下内容:

  • 如何从我的数据库中的多个表中获取数据?
  • 有什么类型的方法可以做到这一点?
  • 什么是联盟和联盟?它们如何彼此不同?
  • 我应该何时使用每一个与其他人相比?

我打算在我的(例如 - PHP)应用程序中使用它,但不想对数据库运行多个查询,我有什么选项可以从单个查询中的多个表中获取数据?

注意:我正在写这篇文章,因为我希望能够链接到我在PHP队列中经常遇到的众多问题的精心编写的指南,因此我可以在发布答案时链接到此以获取更多详细信息.

答案涵盖以下内容:

  1. 第1部分 - 联接和联盟
  2. 第2部分 - 子查询
  3. 第3部分 - 技巧和有效代码
  4. 第4部分 - From子句中的子查询
  5. 第5部分 - John's Tricks的混合包

mysql sql select

425
推荐指数
6
解决办法
78万
查看次数

SQL Server 2008中的CROSS JOIN与INNER JOIN

CROSS JOIN和之间有什么区别INNER JOIN

交叉加入:

SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status], 
FROM   
    Customers 
CROSS JOIN 
    Movies
Run Code Online (Sandbox Code Playgroud)

内部联接:

SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status]
FROM   
    Customers 
INNER JOIN 
    Movies ON Customers.CustomerID = Movies.CustomerID
Run Code Online (Sandbox Code Playgroud)

哪一个更好,为什么我会使用其中一个?

sql t-sql sql-server cross-join sql-server-2008

133
推荐指数
7
解决办法
35万
查看次数

右连接等于左连接?

有一段时间我只知道如何使用INNER JOIN,并且绝对不知道LEFT/RIGHT(OUTER)JOIN的作用.虽然,正如我刚刚读到的那样,我看不出右边的目的是什么?

在我看来它与反向LEFT JOIN相同

如果我们按照我的例子:

SELECT t1.* FROM table1 t1 RIGHT JOIN table2 t2 ON t2.value = t1.value
Run Code Online (Sandbox Code Playgroud)

与以下内容完全相同:

SELECT t2.* FROM table2 t2 LEFT JOIN table1 t1 ON t1.value = t2.value
Run Code Online (Sandbox Code Playgroud)

这是对的,还是我错过了什么?

mysql sql

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

为什么我们不能通过交换表而不是右外连接来使用左外连接?

几天前,我在接受采访时遇到了以下问题."什么是右外连接?" 我回答说,"右外连接连接两个表,并从表中返回匹配的记录以及表A中的非匹配行".面试官只是笑了,又问道:"为什么我们使用Right join而不是我们可以交换表并使用左连接?".然后我的回答是,"是的,我们可以使用".但是,他认为"那么为什么两个概念加入了?(左和右)".我真的对这个问题感到困惑.请帮助我,并纠正我对连接的理解.

sql-server

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

自然连接的维恩图

我一直在尝试完全理解 sql 连接的概念,维恩图在这方面帮助了我很多。我发现它们适用于所有类型的连接,但不适用于自然连接。

自然连接的维恩图是什么样子的?

sql database join natural-join venn-diagram

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

右联接与左联接

在这种情况下,左联接与右联接相同吗?

mysql> 
mysql> 
mysql> use usenet;show tables;describe ARTICLE;describe NEWSGROUP;
Database changed
+------------------+
| Tables_in_usenet |
+------------------+
| ARTICLE          |
| NEWSGROUP        |
+------------------+
2 rows in set (0.00 sec)

+---------------+------------+------+-----+---------+----------------+
| Field         | Type       | Null | Key | Default | Extra          |
+---------------+------------+------+-----+---------+----------------+
| ID            | bigint(20) | NO   | PRI | NULL    | auto_increment |
| MESSAGENUMBER | int(11)    | YES  |     | NULL    |                |
| NEWSGROUP_ID  | bigint(20) | YES  | MUL | NULL    |                | …
Run Code Online (Sandbox Code Playgroud)

mysql sql join left-join one-to-many

2
推荐指数
1
解决办法
1895
查看次数