mysql - 尝试连接三个表以获得特定结果

标签 mysql sql postgresql

我正在尝试编写一个 SQL 查询以返回收养猫“贝壳”的人的姓名

我有一个 adopters 表,其中包含将要或已经收养动物的人。

pets=# SELECT * FROM adopters;
 id | first_name | last_name |       address        | phone_number 
----+------------+-----------+----------------------+--------------
  1 | jack       | smith     | 1 ave                | 123-123-1234
  2 | james      | dude      | 2 ave                | 221-234-4444
  3 | Forrest    | Stone     | 3 lane               | 234-667-6543
  4 | craig      | list      | 44 bulvard           | 555-444-3243
  5 | kap        | seven     | no team              | 999-000-0909
  6 | Miles      | Garrett   | First energy stadium | 123-555-2424
(6 rows)

cats 表,其中包含猫的文件

pets=# SELECT * FROM cats;
 id |   name   | gender | age |     intake_date     |    adoption_date    
----+----------+--------+-----+---------------------+---------------------
  1 | Mushi    | M      |   1 | 2016-01-09 00:00:00 | 2016-03-22 00:00:00
  2 | Seashell | F      |   7 | 2016-01-09 00:00:00 | 
  3 | Azul     | M      |   3 | 2016-01-11 00:00:00 | 2016-04-17 00:00:00
  4 | Victoire | M      |   7 | 2016-01-11 00:00:00 | 2016-09-01 00:00:00
  5 | Nala     | F      |   1 | 2016-01-12 00:00:00 | 
(5 rows)

还有一个adoptions 表,其中记录了所有已发生的采用情况。

pets=# SELECT * FROM adoptions;
 id | adopters | cat |  dog  |  fee  |    date    
----+----------+-----+-------+-------+------------
  1 |        1 |     | 10001 | 10.50 | 2017-11-22
  2 |        2 |     | 10007 | 10.50 | 2017-11-22
  3 |        3 |   5 |       | 10.50 | 2017-11-22
  4 |        5 |   2 |       | 10.50 | 2016-11-22
(4 rows)

我在连接三个表的概念上遇到了麻烦,即使您没有直接回答这个问题,我也非常感谢您指出有帮助的资源方向。

最佳答案

这应该有效:

SELECT p.first_name, p.last_name 
FROM adoptions a
JOIN cats c on c.id = a.cat
JOIN adopters p on p.id = a.adopters
WHERE c.name = 'seashell'

关于mysql - 尝试连接三个表以获得特定结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47703448/

相关文章:

php - 制作 PHP 图像表

数据库查询后jQuery不可拖动

php - 如何在php中从数据库中的数组中添加多行

sql - 数据库 : What is a HANA delta table?

java - 在 hibernate 中是否必须在 createSqlQuery() 中使用 addScalar()?为什么我们在执行SQL查询时需要指定要 hibernate 的数据类型?

postgresql - 如何在 Postgresql 中优化行级安全性

php - 将多个表中的数据插入到一个单独的表中

sql - 如何对 PostgreSQL 主 ID 列执行 LIKE 查询?

PostgreSQL 清理一个大表

Postgresql如何从一个表中选择仅在另一个表中可用的列中的值?