duanqiao1949 2011-12-20 21:01
浏览 104
已采纳

MySQL查询嵌套查询

I`m trying to run a nested query on MySQL (phpmyadmin) and via PHP, and both result in the same output which is incorrect.

NOTE: Table name have been clipped due to sensitivity of project

SELECT * FROM `table1` WHERE ID="SELECT `field1` FROM `table2` WHERE ID=1"

This returns zero rows, although each query alone gives a valid output as below

SELECT `field1` FROM `table2` WHERE ID=1

Gives the required output, and this output when used in the first part of the main query provides also what is required. Please help.

  • 写回答

2条回答 默认 最新

  • duanjia4097 2011-12-20 21:03
    关注

    Don't enclose it in quotes. Instead enclose it in parentheses:

    SELECT * FROM `table1` WHERE ID=(SELECT `field1` FROM `table2` WHERE ID=1)
    

    If multiple rows are expected from the subquery, use WHERE ID IN (SELECT...) instead of WHERE ID=(SELECT...)

    You'll probably get better performance with a JOIN though:

    SELECT table1.* 
    FROM
      table1 JOIN table2 ON table1.ID = table2.field1
    WHERE table1.ID = 1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?