亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

yii2能在一個查詢結果中顯示2張表中的字段嗎?就像原生的sql用LEFT JOIN這種,yii里的joinWith怎么不行?

yii2能在一個查詢結果中顯示2張表中的字段嗎?就像原生的sql用LEFT JOIN這種,yii里的joinWith怎么不行?

hello_world_ 2015-07-29 12:40:00
我有3張表,一張商品表,一張店面表,一張店面_商品關系表,是這樣的:商品表(商品編號,商品名稱,商品規格,商品圖片,商品簡介)店面表(店面編號,店面名稱,店面狀態,店面公告)店面_商品關系表(店面編號,商品編號,售價,庫存,商品狀態)而我根據‘店面編號’,想得到:商品編號,商品名稱,商品規格,商品圖片,商品簡介,售價,庫存,商品狀態。所以只需要查2張表就行了。然后原生的sql:SELECT 店面_商品關系表.商品編號,商品名稱,商品規格,商品圖片,商品簡介,售價,庫存,商品狀態 FROM 店面_商品關系表 LEFT JOIN 商品表 ON(店面_商品關系.商品編號=商品表.商品編號) WHERE 店面編號={$mallid}換成joinWith不明白的地方:$rs=MallToGoods::findBySql("SELECT `GoodsID`,`GoodsPrice`,`GoodsNum`,`GoodsState` FROM `malltogoods` WHERE `MallID`={$mallid}")->joinWith('goodslist','true','LEFT JOIN')->asarray()->all();return $rs;這樣子能把malltogoods表里的GoodsID,GoodsPrice,GoodsNum,GoodsState都查出來,可是查不出'goodslist'表里的,后來我嘗試把 ‘商品名稱,商品規格,商品圖片,商品簡介’都寫到select里頭,它會報錯在 店面_商品關系表 里沒有這些列。所以我不明白我要怎么同時讓2個表里要查的都顯示在一起??戳宋臋n上的 活動記錄->中間關聯表:有時,兩個表通過中間表關聯,定義這樣的關聯關系, 可以通過調用?yii\db\ActiveQuery::via()?方法或yii\db\ActiveQuery::viaTable()?方法來定制 yii\db\ActiveQuery 對象 。舉例而言,如果 order 表和 item 表通過中間表 order_item 關聯起來,可以在 Order 類聲明 items 關聯關系取代中間表:class Order extends \yii\db\ActiveRecord{ ? ?public function getItems() ? ?{ ? ? ? ?return $this->hasMany(Item::className(), ['id' => 'item_id']) ? ? ? ? ? ?->viaTable('order_item', ['order_id' => 'id']); ? ?}}所以我想也應該在我的model中添加關聯。可是 店面和商品間是多對多的關系,一個店面下可以有多個商品,一個商品可以在多個店面下。我要添加怎么樣的關聯,而‘店面_商品關系表’和‘店面表’存在關系嗎?還是說我的表設計的不合理?我不明白了,簡單的說就是不明白原生的sql怎么改到這上面去。
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 8141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號