doushaqing7080 2015-01-12 10:43
浏览 59
已采纳

在JOINed表上MySQL / PDO语法不正确

I am trying to retrieve data from 2 tables using 1 select statement.

Test one fail

$sql = "SELECT banned FROM users WHERE id =:id UNION SELECT first_name, last_name, 
mobile_phone,email, city, address, postal_code, user_type, 
active FROM personal WHERE id =:id";

I have learned from this attempt that you can't have different number of columns selected they need to be even for that to work.

Attempt two fail

$sql = "SELECT users.banned, personal.first_name, personal.last_name, personal.mobile_phone,
personal.email, personal.city, personal.address, personal.postal_code, personal.user_type,
personal.active FROM users WHERE users.id =:id INNER JOIN personal WHERE personal.id =:id";

Got this: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN personal WHERE personal.id ='21'

Tried selecting by aliases fail

Last attempt fail as well

$sql = "SELECT banned, first_name, last_name, mobile_phone, email, city, address, postal_code, user_type, active FROM users WHERE users.id =:id INNER JOIN personal WHERE personal.id =:id";

Running out of ideas what else to try or what I am doing wrong.

  • 写回答

1条回答 默认 最新

  • douxian5963 2015-01-12 10:46
    关注

    Your syntax and logic are incorrect :

    SELECT u.banned
         , p.first_name
         , p.last_name
         , p.mobile_phone
         , p.email
         , p.city
         , p.address
         , p.postal_code
         , p.user_type
         , p.active 
    FROM users u JOIN  personal p ON u.id = p.id
    WHERE u.id =:id
    

    Some tips:

    • when you are using UNION or UNION ALL you should bear in mind, that all SELECTs that are involved should have the same amount of fields.
    • WHERE always goes after FROM and JOIN with ON clauses.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀