我想合并两个选择查询以提高性能。我有点困惑,因为我不确定是否可以使用 <head>
<meta charset="utf-8">
<title>CKEditor</title>
<script src="https://cdn.ckeditor.com/4.11.4/standard/ckeditor.js"></script>
</head>
<body>
<textarea id="editor1"></textarea>
<script>
CKEDITOR.replace( 'editor1' );
</script>
</body>
或JOIN
或其他方法使其更快。
这是我要合并的两个查询:
查询1:
LEFT JOIN
然后,如果查询1中存在该行,则运行查询2:
SELECT id FROM users WHERE email = :email LIMIT 1
感谢您的任何帮助!
答案 0 :(得分:1)
创建join query时,您可以指定要连接的列。在这种情况下,它将是:
select users.id, settings.*
from users
join settings on users.id = settings.id
您还可以使用一个双from
子句,我认为它在相同的背景速度下看起来像:
select users.id, settings.*
from users, settings
where users.id = settings.id
如果设置了正确的索引,则连接应该快于2个选择。当然,涉及速度的因素很多,例如负载,网络,缓存的内容和不缓存的内容等等。
答案 1 :(得分:0)
根据您的描述,加入应该有效。 也许是这样的:
select u.id, s.* from users as u join settings as s on u.id = s.id where email = ?;
答案 2 :(得分:0)
由于第一个子查询将返回1行(或无):
SELECT * FROM settings
WHERE id = (SELECT id FROM users WHERE email = :email LIMIT 1)
答案 3 :(得分:0)
Select s.* from settings s left join users u
ON u.id = s.id
Where email = :email
LIMIT 1;
这将返回“设置”表中具有该特定ID且具有相应“电子邮件”的所有列。
答案 4 :(得分:-1)
SELECT u.id
FROM users u
WHERE email = :email
LEFT JOIN settings s
ON u.id = s.id
LIMIT 1
这是您的左联接查询。