SELECT语句未在Dreamweaver中选择正确的字段

时间:2013-11-14 09:35:31

标签: mysql dreamweaver

我有以下SELECT:

  SELECT cit.city,
           providd.base_city
    FROM
      (SELECT prov.id AS prov_id,
              prov.company_name,
              prov.description AS prov_description,
              prov.photo,
              prov.base_city,
              prov.facebook,
              prov.twitter,
              cat.id AS cat_id,
              pcc.city_id
       FROM `providers` AS prov
       LEFT  JOIN `provider_city_category` AS pcc ON prov.id = pcc.provider_id
       LEFT  JOIN `categories` AS cat ON pcc.category_id = cat.id
       WHERE cat.id =7
         AND pcc.city_id =1) AS providd,
         cities cit
    WHERE providd.base_city = cit.id LIMIT 1

我在Dreamweaver的“高级”区域中创建了一个SELECT语句,当我按下“测试”按钮时,它可以正常工作,但如果单击“确定”,我会在“绑定”面板中看到其他字段。为什么这不在Bindings面板中工作?它不是选择外部语句只是括号之间的语句。

当我测试时,我看到了选中的内容:

cit.city和providd.base_city

但如果我保存并查看Bindings面板,我会看到以下字段:

prov_id

COMPANY_NAME

prov_description

照片

base_city

微博

CAT_ID

city_id

我认为Dreamweaver没有问题我认为我在做这个陈述时出错了。我在本地工作并将其粘贴在phpmyadmin中,它也可以在Dreamweaver的测试环境中工作,但不能在Bindings Panel中工作。为什么呢?

1 个答案:

答案 0 :(得分:1)

选择绝对正确。

我猜Dreamweaver有一个错误(或功能),它执行最内部的子选择或其他东西。

但是您可以轻松地重写查询以不使用子选择:

SELECT cit.city,
       prov.base_city
FROM providers prov
  JOIN cities cit
    ON prov.base_city = cit.id
  LEFT JOIN provider_city_category pcc ON prov.id = pcc.provider_id
  LEFT JOIN categories cat ON pcc.category_id = cat.id
WHERE cat.id =7
  AND pcc.city_id =1
LIMIT 1;