-1

私は2つのテーブルを持っています

CREATE TABLE IF NOT EXISTS `user` (
  `user_id` int(20) NOT NULL AUTO_INCREMENT,
  `ud_id` varchar(50) NOT NULL,
  `name` テキスト NOT NULL,
  `password` テキスト NOT NULL,
  `email` varchar(200) NOT NULL,
  `image` varchar(150) NOT NULL,
  主キー (`user_id`)
) エンジン=InnoDB

mycatch テーブルは

CREATE TABLE IF NOT EXISTS `mycatch` (
  `catch_id` int(11) NOT NULL AUTO_INCREMENT,
  `catch_name` テキスト NOT NULL,
  `catch_details` テキスト NOT NULL,
  `経度` 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;
ALTER TABLE `mycatch`
  追加制約 `mycatch_ibfk_1` 外部キー (`user_id`) REFERENCES `user` (`user_id`) ON UPDATE CASCADE の DELETE CASCADE;

両方のテーブルからデータを取得したい。すなわち

経度、緯度を選択
FROM ユーザー u
LEFT JOIN mycatch m ON u.user_id = m.user_id
どこ u.ud_id =de15a674d1252f6565a65756ebfa97e8e1e58c9c
AND 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 に答える