Select 来自 phpmyadmin 中的多个 table
Select From multi table in phpmyadmin
我有以下表格:
branchInfo (brID, brName)
MotherBoard (ComputerID, Manufacturer, Product, SerialNumber)
Computers (ComputerID, LatestIP, brID)
CPU (ComputerID, NumberOfCores, ClockSpeed)
OS (ComputerID, MemorySize)
Disk (ComputerID, MemorySize)
Network (LatestIP, ipSubnet)
并想要 .csv 导出(brName、制造商、产品、SerialNumber、LatestIP、ipSubnet、NumberOfCores、ClockSpeed、MemorySize、MemorySize)字段
请帮我写sql代码
您想做的事情叫做联接。您可以通过同时从多个 table selecting 加入 SQL 中的多个 table。当您想从 table 中获取信息时,您必须告诉 SQL table 之间的关系。作为连接两个 table 的基本模式,您将告诉 SQL 两个 table 到 select,然后如何连接它们。例如,如果你有两个非常简单的 tables,dogLicence
和 dogAge
,而那些 tables 分别持有 (name, license number) 和 (name, age),代码 SELECT * from dogLicence, dogAge
会给你狗的年龄和执照号码的所有组合。因此,您需要 WHERE
子句。如果你说 SELECT * from dogLicence, dogAge WHERE dogLicence.name = dogAge.name
,你只会 select 一只狗,你会得到它的名字、执照号码和年龄。当然,将名称之类的东西作为主键是不好的做法,但为了简单起见,我们只是假装它。最后,当您 select 时,您可以将 shorthand 用于 table。如果您写 SELECT * from dogLicencse s
,您现在可以在语句的其余部分将 table 称为 's'。牢记所有这些,您的查询将如下所示:
SELECT brname, Manufacturer, Product, SerialNumber, LatestIP, ipSubnet, NumberOfCores, ClockSpeed, MemorySize, MemorySize
FROM branchInfo br, Motherboard m, Computers c, CPU cpu, OS o, Disk d, network N
WHERE b.brID = c.brID
AND m.ComputerID = c.ComputerID
AND o.ComputerID = c.ComputerID
AND d.ComputerID = c.ComputerID
AND n.ComputerID = c.ComputerID
and cpu.ComputerID = c.ComputerID
AND c.LatestIP = n.LatestIP;
我有以下表格:
branchInfo (brID, brName)
MotherBoard (ComputerID, Manufacturer, Product, SerialNumber)
Computers (ComputerID, LatestIP, brID)
CPU (ComputerID, NumberOfCores, ClockSpeed)
OS (ComputerID, MemorySize)
Disk (ComputerID, MemorySize)
Network (LatestIP, ipSubnet)
并想要 .csv 导出(brName、制造商、产品、SerialNumber、LatestIP、ipSubnet、NumberOfCores、ClockSpeed、MemorySize、MemorySize)字段 请帮我写sql代码
您想做的事情叫做联接。您可以通过同时从多个 table selecting 加入 SQL 中的多个 table。当您想从 table 中获取信息时,您必须告诉 SQL table 之间的关系。作为连接两个 table 的基本模式,您将告诉 SQL 两个 table 到 select,然后如何连接它们。例如,如果你有两个非常简单的 tables,dogLicence
和 dogAge
,而那些 tables 分别持有 (name, license number) 和 (name, age),代码 SELECT * from dogLicence, dogAge
会给你狗的年龄和执照号码的所有组合。因此,您需要 WHERE
子句。如果你说 SELECT * from dogLicence, dogAge WHERE dogLicence.name = dogAge.name
,你只会 select 一只狗,你会得到它的名字、执照号码和年龄。当然,将名称之类的东西作为主键是不好的做法,但为了简单起见,我们只是假装它。最后,当您 select 时,您可以将 shorthand 用于 table。如果您写 SELECT * from dogLicencse s
,您现在可以在语句的其余部分将 table 称为 's'。牢记所有这些,您的查询将如下所示:
SELECT brname, Manufacturer, Product, SerialNumber, LatestIP, ipSubnet, NumberOfCores, ClockSpeed, MemorySize, MemorySize
FROM branchInfo br, Motherboard m, Computers c, CPU cpu, OS o, Disk d, network N
WHERE b.brID = c.brID
AND m.ComputerID = c.ComputerID
AND o.ComputerID = c.ComputerID
AND d.ComputerID = c.ComputerID
AND n.ComputerID = c.ComputerID
and cpu.ComputerID = c.ComputerID
AND c.LatestIP = n.LatestIP;