我有兩個包含每個數字的公共ID的表格。 table1只包含1行,每個ID都有一個數字。根據這個數字和相應的ID,我想在表2中找到最小ID併爲每個數字(第一個表格)顯示此唯一ID。 table2包含多個ID(用於table1的數量)。選擇最小(ID),每個數字有多個ID的數字,也顯示來自其他表格的相同(最小)ID的數據。
從MT0意見後,該工作SQL是:
SELECT MIN(t2.ID) AS min_id,
t1.number
FROM table1 t1
INNER JOIN
table2 t1
ON (t2.ID = t1.ID)
WHERE t1.number in (<list of comma separated numbers>)
GROUP BY t1.number;
現在,我也想從表3,其中t3.ID = t1.ID得到(選擇)相關的數據(文本) = MIN(t2.ID)。
當我嘗試這樣做:
SELECT MIN(t2.ID) AS min_id, t3.data, t1.number
FROM table1 t1
INNER JOIN
table2 t1
ON (t2.ID = t1.ID)
LEFT JOIN
table3 t3
on (t3.ID = t1.ID)
WHERE t1.number in (<list of comma separated numbers>)
GROUP BY t1.number;
我得到錯誤「而不是GROUP BY表達式」爲t3.data。 我在做什麼(思考)錯誤?
謝謝。
你的邏輯是難以遵循。你似乎命名了大部分'id'列,但這是不正確的。 –
@GordonLinoff出於好奇,你爲什麼說這不正確? – Boneist
@Boneist。 。 。在't1'中,'number'和'id'都是唯一的(根據文本)。在't2'中,'t2.id'與't1.id'相同。所以,min()並不是真的佔用最小的任何東西。通過使用'group by t1.number,t1.id'和''select''包含't1.id',查詢會更清晰。 –