我知道 MySQL 没有用于选择第一行的 TOP 1 函数。所以我使用limit 1来做到这一点。但是如何同时从两个表(tableX,tableY)中选择第一行。
像这样?
SELECT * FROM Database.tableX
limit 1, Database.tableY limit 1
除非两行之间存在某种关系,否则这是不可能的。这里的其他答案尝试连接两行,但它们不能保证它是每个表中的第一行。他们还假设有一个可以从两个表中匹配的字段。
我最好的建议是做两个查询:
SELECT * FROM Database.tableX limit 1;
SELECT * FROM Database.tableY limit 1;
编辑:您还应该添加一个 ORDER BY 来告诉 MySQL 如何对行进行排序。
可能,如果表定义匹配:
SELECT * FROM Database.tableX LIMIT 1
UNION ALL
(
SELECT * FROM Database.tableY LIMIT 1
)
注意内支架是必要的。否则优化器会将结果集限制为 1 看到最后一个LIMIT 1
子句
只是这个:
SELECT *
FROM Database.TableX, Database.TableY
LIMIT 1
或者这个?
SELECT *
FROM
(SELECT * FROM Database.TableX LIMIT 1) t1,
(SELECT * FROM Database.TableY LIMIT 1) t2