mySQL:如何正确查询?

问题描述 投票:0回答:1

我在作业中找到了这个,但无法弄清楚,请帮忙。

我有3张桌子: 所有者(id,名称),品种(id,类型),狗(id,ownerid,breedid)

连接: owners.id = dogs.ownerid AND Breed.id = dogs.breedid

我的任务是找到名称与品种类型相似的所有者名称。 示例:“John Shepherd”有一只“德国牧羊犬”,因此写下他的名字,因为品种类型的命名与所有者姓名相匹配。

尝试这样解决这个问题:

SELECT owners.name
FROM owners, dogs, breed
WHERE owners.name LIKE CONCAT('%', breeds.type, '%')
AND dogs.breedid = breeds.id
AND dogs.ownerid = owners.id;

我知道这是错误的,因为主人不叫“约翰德国牧羊犬”。

有没有办法喜欢这个查询,让答案不考虑整个breed.type或考虑其中包含多个单词的类型?

mysql
1个回答
0
投票

我原来的答案是正确的,我使作业过于复杂..:/

SELECT owners.name
FROM owners, dogs, breed
WHERE owners.name LIKE CONCAT('%', breeds.type, '%')
AND dogs.breedid = breeds.id
AND dogs.ownerid = owners.id;

不需要拆分多个单词的数据,因为特定的 Breedes.types 只能通过多个单词短语(例如“德国牧羊犬”)来理解。

作业指出我需要找到名称中包含品种类型的所有者的姓名。没有说明主人的狗的品种类型的一部分……真是太糟糕了。 :D 再次感谢@Shadow 和@P.Salmon 付出的时间和精力。真的很感激!

© www.soinside.com 2019 - 2024. All rights reserved.