我在将表连接到一个巨大的表时遇到问题,以便在没有嵌套 FOR 或在其中使用关系的情况下访问所有列。情况是这样的:
cars
========
id_producer (PK)
id_model (PK)
length
weight
...
texts
============
id_model (PK)
language (PK)
text
...
表共享 1 个键:id_model
我想像这样加入这些表:
SELECT *
FROM cars c
JOIN texts t ON c.id_model = t.id_model
WHERE t.language = 'english'
..它将为每辆车返回 1 行。
SQL 很简单,Yii 不是 :(
我尝试使用范围或关系来做到这一点,但从未得到想要的输出。我想写以下内容:
$carsWithTexts = Cars::model()-> ... something ... ->findAll()
foreach ($carsWithTexts as $c)
{
echo $c->id_producer;
echo $c->id_model;
echo $c->id_text;
}
.. 没有嵌套的 FOR,FOR 中没有关系或范围。
这可能吗?还是我必须始终使用以下构造:
$carsWithTexts = Cars::model()-> ... relation ... ->findAll()
foreach ($carsWithTexts as $c)
{
echo $c->id_producer;
echo $c->id_model;
echo $c->relation[0]["id_text"]; // or nested for
}
我知道我可以使用“with”和“together”命令,我做到了,但它没有按我的意愿工作。