MySQL使用相同的WHERE子句插入多行

MySQL使用相同的WHERE子句插入多行,mysql,Mysql,我目前能够使用以下SQL将行插入表中: INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 11),(SELECT tab_id FROM tab WHERE layover_state = 7)) INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 12),(SELECT ta

我目前能够使用以下SQL将行插入表中:

INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 11),(SELECT tab_id FROM tab WHERE layover_state = 7))
INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 12),(SELECT tab_id FROM tab WHERE layover_state = 7))
INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 19),(SELECT tab_id FROM tab WHERE layover_state = 9))
INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 27),(SELECT tab_id FROM tab WHERE layover_state = 10))
INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 45),(SELECT tab_id FROM tab WHERE layover_state = 10))
INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 51),(SELECT tab_id FROM tab WHERE layover_state = 10))
INSERT INTO ots (score_id,tab_id) VALUES ((SELECT id FROM score WHERE score_id = 52),(SELECT tab_id FROM tab WHERE layover_state = 11))
上述
INSERT-INTO
语句工作正常。但是,它们似乎效率很低,因为应该有一些方法可以通过列表来实现这一点,这些列表捕获了作为嵌套的
SELECT
语句的一部分需要指定的所有整数。但是,我不知道如何将
score\u id
放入SQL列表中,同时在单独的列表中保留
layour\u state
的顺序

问题

有没有一种方法可以将上面的代码行替换为使用两个SQL列表作为数字的一行

其他信息:


我在MySQL Workbench中使用MySQL。

score中的一行和tab_id中的一行是否有关联?也许这会有所帮助:是的,正如@Reversion所建议的,插入选择可以让您只需一个查询就可以做到这一点。我不确定我是否理解插入选择方法。对我来说,这似乎只是我已经使用的方法的重复。它似乎使用了一个并集,而我使用了逗号来分隔SELECT语句。还是我遗漏了什么?如果你能回答@scaisEdge问题就好了。
得分
选项卡
之间的关系是什么?即:您如何知道
得分\u id=11
中途停留\u状态=7
相关?回答这个问题将阐明解决您的问题的最佳方案。