SQLite 从基于其他表的表中选择

Bor*_*s R 2 sql sqlite

我有两张表,一张是公司列表,另一张是产品列表。产品链接到“company_id”列中的公司

为了更好地理解,这就是我想做的:

SELECT * FROM Products WHERE company_id = (Company.id where name = Google)
Run Code Online (Sandbox Code Playgroud)

写这个声明的正确方法是什么?

Sha*_*dow 5

将其写为子选择

SELECT * FROM Products WHERE company_id =(SELECT id FROM companies WHERE name = 'Google' limit 1)
Run Code Online (Sandbox Code Playgroud)

或者使用带有 in() 运算符的子选择

SELECT * FROM Products WHERE company_id in (SELECT id FROM companies WHERE name = 'Google')
Run Code Online (Sandbox Code Playgroud)

或者将其写为连接

SELECT p.* 
FROM Products p
inner join companies c on p.company_id=c.id
WHERE c.name='Google'
Run Code Online (Sandbox Code Playgroud)