【问题标题】:How to write SQL query using a join on 3 tables?如何使用 3 个表的连接编写 SQL 查询?
【发布时间】:2017-10-05 20:20:48
【问题描述】:

我用一些虚拟数据创建了一个假设场景。下面是 3 个基本表,我希望编写一个查询来查找 Mary 查看的属性。 在这种情况下,玛丽在格拉斯哥看过 1 处房产。

表 1:客户端

=====================
ID  Name        
=====================
5   Tom
6   Mary
7   John

表 2:属性

=====================
ID  CITY        TYPE    
=====================
14  Aberdeen    House
16  Glasgow     Flat
21  Glasgow     House
94  London      Flat

表 3:查看

========================
Client  Property    Date    
========================
5       14      01-12-2016
5       21      08-12-2016
6       16      10-10-2016

【问题讨论】:

  • INNER JOIN 是我的第一个想法,尤其是对于学习 SQL 的人。
  • 你想展示什么?
  • SEarle1986 我只是想看看我将如何查看玛丽查看的房产
  • 对不起,错过了一点!这个问题现在有了答案,但我同意他们的观点,即 JOIN(或 INNER JOIN)是要走的路
  • 谢谢 SEarle1986 我看到了,我现在只是在看两个答案,并试图弄清楚它们,因为一个使用 join,另一个使用内部 Join

标签: mysql sql inner-join jointable


【解决方案1】:

一定要使用内连接,一个简单的例子可以是

SELECT c.Name, p.Type, p.City, v.Date
FROM Viewing v 
JOIN Client c ON v.client = c.ID
JOIN Property p ON v.property = p.ID
WHERE c.Name = 'Mary'

这应该会告诉您谁查看了什么以及何时查看。为了保持整洁,我在表名上使用了别名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2015-12-11
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    相关资源
    最近更新 更多