为简单起见,假设所有相关字段都是NOT NULL.
你可以做:
SELECT
table1.this, table2.that, table2.somethingelse
FROM
table1, table2
WHERE
table1.foreignkey = table2.primarykey
AND (some other conditions)
Run Code Online (Sandbox Code Playgroud)
要不然:
SELECT
table1.this, table2.that, table2.somethingelse
FROM
table1 INNER JOIN table2
ON table1.foreignkey = table2.primarykey
WHERE
(some other conditions)
Run Code Online (Sandbox Code Playgroud)
这两个是以同样的方式工作MySQL吗?
是否存在性能差异(在oracle中)
Select * from Table1 T1
Inner Join Table2 T2 On T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)
和
Select * from Table1 T1, Table2 T2
Where T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)
?
在MySQL中,我有两个不同的数据库-我们姑且称之为一个和乙.
是否可以在数据库A中的表与数据库B中的表之间执行连接?
我有2张桌子.tbl_names并且tbl_section其中包含两个id领域.我如何选择该id字段,因为我总是收到此错误:
1052: Column 'id' in field list is ambiguous
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
SELECT id, name, section
FROM tbl_names, tbl_section
WHERE tbl_names.id = tbl_section.id
Run Code Online (Sandbox Code Playgroud)
我可以选择所有字段并避免错误.但这将是对性能的浪费.我该怎么办?
我有三个表:供应商,零件和类型.我需要加入所有这些,同时在三个表中区分具有相同名称的列(例如,"id").我想成功运行此查询:
CREATE VIEW Everything AS
SELECT Suppliers.name as supplier,
Parts.id,
Parts.description,
Types.typedesc as type
FROM Suppliers JOIN (Parts JOIN Types ON Parts.type_id = Types.id)
ON Suppliers.id = Parts.supplier_id;
Run Code Online (Sandbox Code Playgroud)
我的DBMS(sqlite)抱怨"没有这样的列(Parts.id)".我想在JOIN完成后会忘记表名,但是我怎样才能引用id属于表的列Parts呢?
这两者之间有性能差异吗?
select * from tableA INNER JOIN tableB ON tableA.type = ? AND tableB.ref = tableA.id
select * from tableA INNER JOIN tableB ON tableB.ref = tableA.id WHERE tableA.type = ?
Run Code Online (Sandbox Code Playgroud) 我有一个相当简单的查询,我试着写.
如果我运行以下查询:
SELECT parts.id, parts.type_id
FROM parts
WHERE parts.type_id=1
OR parts.type_id=2
OR parts.type_id=4
ORDER BY parts.type_id;
Run Code Online (Sandbox Code Playgroud)
我得到了我希望返回的所有行.现在,当我尝试使用以下查询从另一个表中获取parent_unit时,六行突然退出结果:
SELECT parts.id, parts.type_id, sp.parent_unit
FROM parts, serialized_parts sp
WHERE (parts.type_id=1 OR parts.type_id=2 OR parts.type_id=4)
AND sp.parts_id = parts.id
ORDER BY parts.type_id
Run Code Online (Sandbox Code Playgroud)
在过去,我从来没有在我的查询中真正处理OR,所以也许我只是做错了.那说我猜它只是一个简单的错误.如果您需要样本数据,请告诉我,我会发布一些.谢谢.