我在計算查詢時遇到了一些麻煩。我有兩個表,COMPANY,它包含一個公司id列,comp_id和一個名稱列。第二個表格SOURCE有一個comp_id列和一個公司銷售零件的列。MySQL初學者查詢
如何編寫查詢來查找生產所有零件的公司的名稱?我認爲這使用不存在的陳述,但我不知道如何。
謝謝。
我在計算查詢時遇到了一些麻煩。我有兩個表,COMPANY,它包含一個公司id列,comp_id和一個名稱列。第二個表格SOURCE有一個comp_id列和一個公司銷售零件的列。MySQL初學者查詢
如何編寫查詢來查找生產所有零件的公司的名稱?我認爲這使用不存在的陳述,但我不知道如何。
謝謝。
是非常簡單的命令,假設一個部分是 「875」
SELECT name FROM company WHERE comp_id IN(SELECT comp_id FROM parts
WHERE parts = 875)
這讓你在不同公司的相同部分
Select name
from company, source
where company.comp_id=source.comp_id;
謝謝,但這不是我正在尋找的。通過此查詢,我收到了不生產所有產品的公司的名稱。我想要特定的公司生產每件產品。 – user1851970
我想,源只有生產零件的公司,否則你應該更詳細地描述你的表格 – doniyor
嘗試......
SELECT c.name from company join source s on (s.comp_id = c.comp_id) where parts = [:part_id];
這也不完全回答我的問題。我需要特定的公司來生產每一個零件。 SOURCE表只包含一個comp_id和一個零件,並且在銷售多個零件的公司或由多個公司銷售的零件的兩欄中可能有重複。 '從SOURCE'中選擇不同的部分將給出部件列表。 – user1851970
從公司選擇名稱,來源where.com.comp_id = source.comp_id;
SELECT name, count(*) AS parts_count
FROM company, source
WHERE company.comp_id = source.comp_id
GROUP BY name
HAVING parts_count = (select count(*) from source)
我無法查詢特定部分,我需要出售所有零件的公司。 – user1851970