0

我有以下选择:

  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 语句,当我按下“测试”按钮时,它工作得很好,但是如果我单击“确定”,我会看到“绑定面板”中选择了其他字段。为什么这在“绑定”面板中不起作用?它不只是选择括号之间的外部语句。

当我测试时,我看到选择:

cit.city 和 providd.base_city

但是,如果我保存并查看绑定面板,我有这些字段:

prov_id

公司名称

prov_description

照片

基地城市

Facebook

推特

cat_id

city_id

我不认为 Dreamweaver 有什么问题 我认为我对这句话做错了什么。我在本地工作并将其粘贴到 phpmyadmin 中,它也可以在那里工作,就像在 Dreamweaver 的测试环境中一样,但不是在绑定面板中。为什么?

4

1 回答 1

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;
于 2013-11-14T10:00:30.010 回答