あまり多くのポイントはありません、たったの 100 点です、皆さんが私を助けてくれることを願っています

WBOY
リリース: 2016-06-20 12:44:13
オリジナル
848 人が閲覧しました

テーブル A: キー フィールド ID (フィールド ID) Attr_type (フィールド カテゴリは 1 のみ)
15 1
14 0
13 1
12 1 にはさらに B テーブルがある可能性があります: キーフィールド a_id (フィールドid) in_id (テーブルA IDと紐付ける) shop_id (フィールドidから取得) 400 15 15
15
> 388 14 15-- ---
387 14 15 - ---- これら 2 つのグループは組み合わせを作成せず、テーブル A の Type が 0 であると考えます

386 13 15
385 13 15

384 12 15 383 12 15 には、さらに 1 つの属性または

のセットが含まれる場合があります。 384 12 14
383 12 14
382 12 14
381 12 14 14 14
その他
Cテーブル:キーフィールドID(フィールドID)SHOP_ID(テーブルB SHOP_IDに関連付けられている)attr_id(ループアウト)は次の結果です
1 15を取得したい結果2 15 400|386|385 3テーブル AB からデータを取得し、テーブル C に生成します。すでに存在する場合は無視します。存在しない世代





たとえば、shop_id 15 の ID に基づいて生成をループしたいです。テーブル C に移動して、コードを要求します。
以下は、私が書いた SQL の一部です。助けてください。





    $sql = "SELECT b.a_id ".            "FROM " .$GLOBALS['ecs']->table('B'). " AS b ".            "LEFT JOIN " .$GLOBALS['ecs']->table('A'). " AS a ".            "ON a.id IN(b.in_id) ".            "WHERE b.shop_id = '15' AND a.attr_type = '1' " .             "ORDER BY b.a_id DESC";    $row = $GLOBALS['db']->getAll($sql);
ログイン後にコピー














ディスカッションへの返信(解決策)


結果がどうなったのか分かりませんが、推測してみましょう

結果として、私のブラウザは ....&shop_id=15 このパターンを与え、テーブル b から shop_id 15 のデータを取得し、テーブル b から 1 ではない attr_type のデータを分離するという命令を受け取ります。 🎜>取得されるのは次の
B テーブルのグループです: キー フィールド a_id (フィールド ID) in_id (テーブル A ID に関連付けられています) shop_id (フィールド ID に基づいて取得されます) 400 15 15
386 13 15
385 13
15 384 12 15
383 12 15

で in_id

400 15 399 15

* *** *********************************************** ** ************************************************* * ***************グループ
386 13 15
385 13 15
*********************************************************************************************************************一个分组
384 12 15
383 12 15
*********************************************************************************************************************一个分组

然后把 前面的 a_id 字段数据做组合变化 写入到c表 形成 400|386|384 这种

C表:关键字段 id(字段id) shop_id(同B表shop_id 关联)attr_id(循环出来的数值) 以下是我想得到的结果
1 15 400|386|384
2 15 400|386|385

C表 id 为 auto属性 shop_id 为我给与的id attr_id 就是组合出来的变化结果

结果就是 我浏览器给与 ....&shop_id=15 这个格局 php收到指令 从b表获取shop_id为15的数据 然后从b表隔离
写错了 应该是从A表帅选
结果就是 我浏览器给与 ....&shop_id=15 这个格局 php收到指令 从b表获取shop_id为15的数据 然后从 A表隔离

select in_id, shop_id, group_concat(a_id) as attr_id from A, B where A.id=B.in_id and A.attr_type=1 and shop_id=15 group by  B.in_id
ログイン後にコピー
ログイン後にコピー
in_id shop_id attr_id 12    15      384,383 13    15      386,385 15    15      400,399 
ログイン後にコピー
ログイン後にコピー

select in_id, shop_id, group_concat(a_id) as attr_id from A, B where A.id=B.in_id and A.attr_type=1 and shop_id=15 group by  B.in_id
ログイン後にコピー
ログイン後にコピー
in_id shop_id attr_id 12    15      384,383 13    15      386,385 15    15      400,399 
ログイン後にコピー
ログイン後にコピー


版主,我已经自己写好了,谢谢你啊


大神,请您帮个忙,怎么把这个表里的数据按照我的要求隔离出来
img_id 标示为1的 goods_id 261 attr_id 区分组的依据

最终的要求就是 输出
a= '584,583,582,581,580,579'
b= '578,577,576,575,574,573'

572和495不输出 因为img_id 不等于一 谢谢了

select goods_id, attr_id, groub_concat(goods_attr_id) from tbl_name where img_id=1 group by attr_id

$a = array('571','570');$b = array('569','568','567','566','565','564');$c = array('563','562','561','560','559');foreach(combineDika($a,$b) as $v){	$r[] = join('|', $v);}$attr_all =  join(',', $r);$attr_all =  explode(',', $attr_all);foreach ($attr_all as $list){        $sql = "SELECT goods_attr " .                "FROM " .$GLOBALS['ecs']->table('products') .                "WHERE goods_attr = '".$list."' ";        $check_attr = $GLOBALS['db']->getOne($sql);		$value = 'ECS000261g_p'.rand(10000,99999);		if (empty($check_attr))        {             $sql = "INSERT INTO " . $GLOBALS['ecs']->table('products') . " (goods_id, goods_attr, product_sn, product_number)  VALUES ('261', '".$list."', '$value', '10000')";             $GLOBALS['db']->query($sql);        }}
ログイン後にコピー

这是我后面执行的代码

用个2B方法读取出来了
谢谢版主
我现在结贴

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート