-1

我有两张桌子

如果不存在“用户”,则创建表(
  `user_id` int(20) NOT NULL AUTO_INCREMENT,
  `ud_id` varchar(50) 非空,
  `name` 文本不为空,
  `密码`文本不为空,
  `email` varchar(200) NOT NULL,
  `image` varchar(150) NOT NULL,
  主键(`user_id`)
) 引擎=InnoDB

mycatch 表是

如果不存在 `mycatch` 则创建表(
  `catch_id` int(11) NOT NULL AUTO_INCREMENT,
  `catch_name` 文本不为空,
  `catch_details` 文本不为空,
  `longitude` float(10,6) NOT NULL,
  `纬度` float(10,6) NOT NULL,
  `time` 时间戳 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `image` varchar(150) NOT NULL,
  `user_id` int(20) NOT NULL,
  主键(`catch_id`),
  KEY `user_id` (`user_id`)
) 引擎=InnoDB;
更改表`mycatch`
  添加约束 `mycatch_ibfk_1` 外键 (`user_id`) 参考 `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;

我想从两个表中检索数据。IE

选择经度、纬度
来自用户你
左连接 mycatch m ON u.user_id = m.user_id
WHERE u.ud_id =de15a674d1252f6565a65756ebfa97e8e1e58c9c
和 m.catch_id >7

但这给了我错误#1054 - Unknown column 'de15a674d1252f6565a65756ebfa97e8e1e58c9c' in 'where clause'
但是当我更改 u.ud_id=123456789 然后它工作正常

4

2 回答 2

5

你需要在 u.ud_id 周围加上单引号

SELECT longitude,latitude
FROM user u
LEFT JOIN mycatch m ON u.user_id = m.user_id
WHERE u.ud_id = 'de15a674d1252f6565a65756ebfa97e8e1e58c9c'
AND m.catch_id >7
于 2010-12-31T13:04:45.010 回答
1

您需要将您的价值放在引号中:

... WHERE u.ud_id='de15a674d1252f6565a65756ebfa97e8e1e58c9c' ...
于 2010-12-31T13:05:54.463 回答