gpt4 book ai didi

mysql - 通过名称获取表信息,获取其id,然后使用获取的id获取其他信息

转载 作者:行者123 更新时间:2023-11-29 08:30:31 24 4
gpt4 key购买 nike

我在 sql 中有两个表:person 和 status。

我想按人名搜索一行,获取该行后,获取 id,然后使用该 id 获取其他表的其他行

我有

DROP    TABLE IF EXISTS `tbl_person`; 
CREATE TABLE `tbl_person` (
id_person INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL ,
email VARCHAR(25) NOT NULL ,
info VARCHAR(25) NOT NULL ,
info2 VARCHAR(25) NOT NULL ,
CONSTRAINT `uc_Info_Person` UNIQUE (`id_person`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


DROP TABLE IF EXISTS `tbl_status` ;
CREATE TABLE `tbl_status` (
id_status INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
id_person INTEGER NOT NULL,
a_ingre INTEGER NOT NULL DEFAULT 0,
b_on_alfa INTEGER NOT NULL DEFAULT 0,
c_on_bith INTEGER NOT NULL DEFAULT 0,
treatment VARCHAR(25) NOT NULL ,
medic VARCHAR(25) NOT NULL ,
reingr VARCHAR(25) NOT NULL ,
FOREIGN KEY (id_person) REFERENCES `tbl_person` (id_person),
CONSTRAINT `uc_Info_status` UNIQUE (`id_person`,`id_status`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


INSERT INTO `tbl_person` VALUES (1, 'JOE DOE', 'joe@doe.com','description','other one');
INSERT INTO `tbl_status` VALUES (1, 1, 10,20,30,'diclofenaco','dosis', 'reign');

和查询:

select * from       `tbl_person` person
INNER JOIN `tbl_status` status
on person.name like 'Joe'
and person.id_person = status.id_person ;

但这不会返回任何内容。是否可以进行一次涉及所有这些的查询?

请查看the fiddle

最佳答案

您的 LIKE 操作数中缺少通配符(请参阅 here )。例如,以下命令将查找名称以“Joe”开头的记录:

SELECT * FROM `tbl_person` person
INNER JOIN `tbl_status` status
ON person.name LIKE 'Joe%' -- Note the % trailing the search string
AND person.id_person = status.id_person;

关于mysql - 通过名称获取表信息,获取其id,然后使用获取的id获取其他信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16739787/

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