首页 文章

Mysql选择主表值为where和join表的结果

提问于
浏览
-1

您好我希望能够从主表 'properties' 中选择要在where子句中使用的值,然后在实际查询中从连接表中选择值 . 这是我的数据库结构 .

表属性:

id | title | property_type | city | sector | bedrooms
-----------------------------------------------------
1  | hotel | 7             | 4    | 1      | three
-----------------------------------------------------


table city

id | cityname |
---------------
2  | Plovdiv  |
---------------

table sector

id | sectorname|
---------------
2  | Trakia    |
----------------

table property_typ 


etc.

所以这是我收到错误的实际查询:

$query= "SELECT 
   P.id,P.price
  ,P.contract,P.property_type
  ,P.sector,P.title
  ,P.address,P.bedrooms
  ,P.bathrooms,P.price
  ,P.m2,P.text_english
  ,P.photo_01,P.utilities
  ,P.google_maps,P.date
  ,CT.id,CT.english_text
  ,PT.id,PT.english
  ,C.cityname,S.sectorname
  ,S.id,O.ownername
  ,O.phone_one,O.phone_two
  ,O.email,O.notes
FROM properties P
   JOIN contract CT ON CT.id = P.contract
   JOIN property_type PT ON PT.id = P.property_type
   JOIN city C ON C.id = P.city
   JOIN sector S ON S.id = P.sector
   JOIN owner O ON O.id = P.owner 
FROM properties 
WHERE P.sector = 2";

如果能够实现这一目标,任何帮助都会让我受到欢迎 .

错误:致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在'FROM properties WHERE P.sector = 2附近使用正确的语法;在E:\ xampp \ htdocs \ dolche \ admin \ class \ pagination.php的第43行'限制0,30':451堆栈跟踪:#0 E:\ xampp \ htdocs \ dolche \ admin \ class \ pagination.php( 451):PDOStatement-> execute()#1 E:\ xampp \ htdocs \ dolche \ admin \ search.php(191):在E:\ xampp \ htdocs \ dolche中抛出pagination-> execute()#2 第451行的\ admin \ class \ pagination.php

2 回答

  • 2

    删除 WHERE 子句之前的 FROM properties

    JOIN owner O
    ON O.id = P.owner WHERE P.sector = 2";
    
  • 0

    您正在多次使用FROM属性,请删除下面指出的两个 from-2 .

    $query= "SELECT 
       P.id
      ,P.price
      .
      .
      ,O.email
      ,O.notes
    
    FROM properties P
     ^from-1
    JOIN contract CT
      ON CT.id = P.contract
      .
      .
    JOIN owner O
      ON O.id = P.owner FROM properties WHERE P.sector = 2";
                         ^from-2
    

相关问题