我试图从数据库中检索一条记录,但在查询另一条记录之前,我不知道要查询哪个表名。
如果我知道表名和id,那么结束查询将如下所示。
SELECT * FROM `materials_sheet_stock` WHERE `id` = 2
但由于我不知道表名或该表中的id,所以我尝试将其分解一下。
此查询将成功检索上述查询的表名
SELECT tb1.*
FROM (SELECT `tag_table`
FROM `materials_group_tags_mapping`
WHERE `tag_id` IN
(SELECT `materials_group_tags`.`id`
FROM `materials_group_tags`
WHERE `materials_group_tags`.`name` = "frameless_base_side_material_unexposed")) AS tb1
在这种情况下 materials_sheet_stock
此查询将成功检索 ID
我在上面的查询中需要的
(SELECT `materials_group_tags_mapping`.`tag_value`
FROM `materials_group_tags_mapping`
WHERE `materials_group_tags_mapping`.`tag_id` IN
(SELECT `materials_group_tags`.`id`
FROM `materials_group_tags`
WHERE `materials_group_tags`.`name` = "frameless_base_side_material_unexposed"))
但现在,当我在一个查询中将它们放在一起时,使用in-it会不断抛出关于找不到列或所有表都需要别名的错误。我试着编辑下面的代码已经一个小时了,但没有成功。希望你们能发现错误。这是我正在使用的最后一个代码。
SELECT tb2.*
FROM (SELECT `tag_table`
FROM `materials_group_tags_mapping`
WHERE `tag_id` IN
(SELECT `materials_group_tags`.`id`
FROM `materials_group_tags`
WHERE `materials_group_tags`.`name` = "frameless_base_side_material_unexposed") ) as tb2
WHERE tb2.`id` IN
(SELECT `materials_group_tags_mapping`.`tag_value`
FROM `materials_group_tags_mapping`
WHERE `materials_group_tags_mapping`.`tag_id` IN
(SELECT `materials_group_tags`.`id`
FROM `materials_group_tags`
WHERE `materials_group_tags`.`name` = "frameless_base_side_material_unexposed"))
暂无答案!
目前还没有任何答案,快来回答吧!