0

私は mysql データベースが初めてで、結合を使用するクエリを作成しようとしています。私が書いた現在のクエリは、実行に1秒かかります.researchを行ったところ、結合が実行時間を短縮するための最良の解決策であることがわかりました.

私が使用しているクエリは次のとおりです。

SELECT count(1) as total 
FROM `mytable` 
where pid IN (
     SELECT pid FROM `maps` 
     where `node_id` = (
          SELECT nid FROM shop 
          WHERE value = 'selling' 
            and parent = '170' 
            and  tid = 1
          )
     and  tid = 1
) 
and `pnumber` IN (
     select pnumber 
     FROM users_pro 
     where value = 'hulo' 
     and  tid = 1
)
and tid = 1

どうぞ、少しでもお役に立てれば幸いです。

ありがとう..

4

1 に答える 1

1
SELECT count(distinct mytable.*) as total 
FROM mytable 
JOIN maps
  ON mytable.pid = maps.pid
  AND maps.tid = mytable.tid
JOIN shop
  ON maps.node_id = shop.nid
  AND shop.value = 'selling' 
  AND shop.parent = '170' 
  AND shop.tid = mytable.tid
JOIN users_pro 
  ON mytable.pnumber = users_pro.pnumber
  AND users_pro.value = 'hulo' 
  AND users_pro.tid = mytable.tid
WHERE mytable.tid=1
于 2013-04-25T20:26:33.593 に答える