【发布时间】:2015-12-10 08:17:43
【问题描述】:
我的情况: php 5.1.6 cakephp 1.3
我有一张餐厅桌子,其结构如下所示。
id name
1 Italian_resto
2 French_resto
3 Japanese_resto
我还有一个 RestaurantsTag 表,其结构如下所示。
id restaurant_id type tag
1 1 area Firenze
2 1 genre Italian
3 2 area Paris
4 2 genre French
5 3 area Tokyo
6 3 genre Japanese
这两个表可以通过 Restaurant.id 和 RestaurantsTag.restaurant_id 连接。 然后,当我通过“Italian”搜索标签时,我想获取属于 Italian_resto 的所有标签。换句话说,当我通过 'Italian' 搜索标签时,我想获得 restaurant_ids 均为 1 的 'Italian' 和 'Firenze' 。我想要的结果如下。
array(1) {
[0]=>
array(2) {
["Restaurant"]=>
array(4) {
["id"]=>
string(1) "1"
["name"]=>
string(27) "Italian_resto"
}
["RestaurantsTag"]=>
array(2) {
[0]=>
array(2) {
["type"]=>
string(5) "genre"
["tag"]=>
string(12) "Italian"
}
[1]=>
array(2) {
["type"]=>
string(4) "area"
["tag"]=>
string(6) "Firenze"
}
}
}
}
下面的结果也是受欢迎的。
array(1) {
[0]=>
array(2) {
["Restaurant"]=>
array(4) {
["id"]=>
string(1) "1"
["name"]=>
string(27) "Italian_resto"
}
["RestaurantsTag"]=>
array(2) {
[0]=>
array(2) {
["type"]=>
string(5) "genre"
["tag"]=>
string(12) "Italian"
}
}
}
[1]=>
array(2) {
["Restaurant"]=>
array(4) {
["id"]=>
string(1) "1"
["name"]=>
string(27) "Italian_resto"
}
["RestaurantsTag"]=>
array(2) {
[0]=>
array(2) {
["type"]=>
string(5) "area"
["tag"]=>
string(12) "Firenze"
}
}
}
}
如何通过 cakephp 1.3 中的一个查询来实现? 如果不可能,我如何通过最简单的查询来实现?
【问题讨论】:
-
基本上你想要一个mysql查询?我没有使用 cakephp 的经验。我可以给你一个mysql查询,它可以给你你想要的信息
-
@Sohaib 基本上是想要cakephp的代码,不过如果对cakephp不熟悉,也欢迎mysql查询。然后我将尝试弄清楚如何在 cakephp 中做到这一点。也欢迎对表结构的建议,因为目前这些表的结构是可变的
-
你能清楚地定义你的输入吗?确切的查询是什么。 tag=Italian 是唯一提供的吗?
-
@Sohaib 是的,tag=Italian 是唯一提供的。
-
如果标签=Italian 也出现在 resId 2 中怎么办?在这种情况下,期望的输出是什么?