gpt4 book ai didi

sql - 如何在MySQL中使用子查询

转载 作者:行者123 更新时间:2023-11-29 06:19:31 33 4
gpt4 key购买 nike

我有两张 table 。

用户:

CREATE TABLE IF NOT EXISTS `user` (
`user_id` int(20) NOT NULL AUTO_INCREMENT,
`ud_id` varchar(50) NOT NULL,
`name` text NOT NULL,
`password` text NOT NULL,
`email` varchar(200) NOT NULL,
`image` varchar(150) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB

mycatch:

CREATE TABLE IF NOT EXISTS `mycatch` (
`catch_id` int(11) NOT NULL AUTO_INCREMENT,
`catch_name` text NOT NULL,
`catch_details` text NOT NULL,
`longitude` float(10,6) NOT NULL,
`latitude` float(10,6) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`image` varchar(150) NOT NULL,
`user_id` int(20) NOT NULL,
PRIMARY KEY (`catch_id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB;
ALTER TABLE `mycatch`
ADD CONSTRAINT `mycatch_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;

我的目标是:我想根据给定的ud_id(来自用户)和catch_id<从mycatch检索经度和纬度/em> (来自 mycatch),其中 ud_id = 给定的 ud_idcatch_id> 给定的 catch_id.

我使用了查询但无法检索

SELECT ud_id=$ud_id FROM user
WHERE user_id =
(
SELECT user_id,longitude,latitude from mycatch
WHERE catch_id>'$catch_id'
)

错误是:

#1241 - Operand should contain 1 column(s)

最佳答案

首先,尽量不要使用子查询,它们在 MySQL 中非常慢。

其次,子查询在这里根本没有帮助。这是常规联接(不,Singh 先生,不是内部联接):

SELECT ud_id FROM user, mycatch
WHERE catch_id>'$catch_id'
AND user.user_id = mycatch.user_id

关于sql - 如何在MySQL中使用子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4569964/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com