选择,我有以下MySQL表:从两个MySQL表
tbl_pet_owners:
+----+--------+----------+--------+--------------+
| id | name | pet | city | date_adopted |
+----+--------+----------+--------+--------------+
| 1 | jane | cat | Boston | 2017-07-11 |
| 2 | jane | dog | Boston | 2017-07-11 |
| 3 | jane | cat | Boston | 2017-06-11 |
| 4 | jack | cat | Boston | 2016-07-11 |
| 5 | jim | snake | Boston | 2017-07-11 |
| 6 | jim | goldfish | Boston | 2017-07-11 |
| 7 | joseph | cat | NYC | 2016-07-11 |
| 8 | sam | cat | NYC | 2017-07-11 |
| 9 | drew | dog | NYC | 2016-07-11 |
+----+--------+----------+--------+--------------+
tbl_pet_types:
+----------+-------------+
| pet | type |
+----------+-------------+
| cat | mammal |
| dog | mammal |
| goldfish | fish |
| goldfish | seacreature |
| snake | reptile |
+----------+-------------+
这里的SQL命令,我想建造,英文:
选择姓名,宠物和宠物的类型,其中所有者的城市是波士顿。此外,结果集中不允许有重复。其结果将是:
+------+----------+-------------------+
| name | pet | type |
+======+==========+===================+
| jane | cat | mammal |
+------+----------+-------------------+
| jane | dog | mammal |
+------+----------+-------------------+
| jack | cat | mammal |
+------+----------+-------------------+
| jim | snake | reptile |
+------+----------+-------------------+
| jim | goldfish | fish, seacreature |
+------+----------+-------------------+
这是我到目前为止有:
SELECT result FROM (
SELECT DISTINCT owners.name, owners.pet, owners.city,
group_concat(DISTINCT types.type separator ', ') AS type
FROM tbl_pet_owners owners
INNER JOIN tbl_pet_types types ON owners.pet = types.pet
GROUP BY owners.name, owners.pet)
as result WHERE result.city = 'Boston'
但我发现了错误:“字段列表”
到目前为止您尝试了哪些查询? – jackarms
你几乎在那里..你需要加入这两个表,使用宠物字段作为加入条件。请对Join类型及其工作方式进行一些研究。此外,这看起来像家庭作业可疑,如果它是请编辑你的问题,并添加这一点的细节。我们都在这里提供帮助,但真的不想为你做最初的工作。 – apesa
'SELECT n.name,p.pet,p.type FROM tbl_pet_owners n OUTER JOIN tbl_pet_types p ON n.pet = p.pet'这是为了让你开始,现在你必须弄清楚如何获得不同的宠物值从这个 –