我有两个表:baseresulttables
和historyviewdemands
。
我想从baseresulttables
中获取前n个条目,并且在historyviewdemands
中是否有它们的值。
但是查询的工作方式类似于内部联接。
我在做什么错了?
基本结果表
ID TypeResult
792 1
9397 1
9398 1
9399 1
9400 1
历史记录需求
ID BaseResutlTableId
7720 9397
7721 9398
7722 9399
7723 9400
7724 9401
查询:
SELECT
bs.ID, hv.Id
FROM
baseresulttables bs
LEFT JOIN
historyviewdemands hv ON (bs.ID = hv.BaseResutlTableId)
WHERE
bs.`TypeResult` = 1
LIMIT 20 OFFSET 0;
重用
bs.ID hv.Id
9397 7720
9398 7721
9399 7722
9400 7723
9401 7724
答案 0 :(得分:1)
在没有LIMIT
的情况下使用ORDER BY
毫无意义,因为您并没有告诉MySQL选择哪个 order 用于选择一定数量的记录。添加ORDER BY
子句以查询最佳结果。
SELECT bs.ID, hv.Id
FROM baseresulttables bs
LEFT JOIN historyviewdemands hv
ON bs.ID = hv.BaseResutlTableId
WHERE
bs.TypeResult = 1
ORDER BY <some column>
LIMIT 20 OFFSET 0;