如何使用 SQL 应用连接查询
how to apply join query using SQL
我在 MySQL 数据库中有 2 个 table。
第一个 table 是 'property',包含列(id(pk)、标题、描述、状态)
第二个table是'object_property',其中存储了object和属性之间的所有关系及其关系值,具有列(id(pk), object_id,property_id(fk 参考列是 属性 table 的 'id'),值)
现在我想从 'property' table 中提取所有属性的结果,其中关系在 'object_property' table.[=11= 中不存在]
我需要为此编写 SQL 连接查询...
有人能帮帮我吗?我是 SQL.
的新手
谢谢!
试试这个:
select p.* FROM property p inner join object_property o on o.property_id!=p.id;
如果您直接在 MySQL 中编写对 运行 的原始查询,您可以使用以下 LEFT JOIN
:
SELECT p.*
FROM property p
LEFT JOIN object_property op
ON p.id = op.property_id
WHERE op.property_id IS NULL
如果您在 HQL 中编写查询,那么您将处理代表 table 的 实体 (Java POJO),而不是 table他们自己。我可以提供以下 HQL 查询:
from Property p
left join p.ObjectProperty as op
where op is null
这假设您有一个名为 Property
的 class,代表 property
table。它还假定 object_property
table 具有实体 class ObjectProperty
,并且 Property
具有对 ObjectProperty
.[=19= 的引用]
你有两个table,
table property ( id, title, description, status, primary key(id) )
table object_property ( id, object_id, property_id, value, primary key(id) )
其中 object_property.property_id 是 property.id
的外键
您可以连接这些 table 以获取共享公共键的行(元组),
SELECT p.id, p.title, p.description, p.status, op.id, op.object_id, op.value
FROM property AS p LEFT JOIN object_property AS op ON p.id = op.property_id ;
您可以使用 INNER JOIN、LEFT JOIN、RIGHT JOIN,具体取决于您要匹配的内容,但是这里您要查找 属性 中的行object_property table(LEFT OUTER JOIN 的 OUTER 部分)中不存在 id,
SELECT p.id, p.title, p.description, p.status
FROM property AS p
WHERE p.id NOT IN (SELECT DISTINCT op.property_id FROM object_property AS op ) ;
我在 MySQL 数据库中有 2 个 table。
第一个 table 是 'property',包含列(id(pk)、标题、描述、状态)
第二个table是'object_property',其中存储了object和属性之间的所有关系及其关系值,具有列(id(pk), object_id,property_id(fk 参考列是 属性 table 的 'id'),值)
现在我想从 'property' table 中提取所有属性的结果,其中关系在 'object_property' table.[=11= 中不存在]
我需要为此编写 SQL 连接查询...
有人能帮帮我吗?我是 SQL.
的新手谢谢!
试试这个:
select p.* FROM property p inner join object_property o on o.property_id!=p.id;
如果您直接在 MySQL 中编写对 运行 的原始查询,您可以使用以下 LEFT JOIN
:
SELECT p.*
FROM property p
LEFT JOIN object_property op
ON p.id = op.property_id
WHERE op.property_id IS NULL
如果您在 HQL 中编写查询,那么您将处理代表 table 的 实体 (Java POJO),而不是 table他们自己。我可以提供以下 HQL 查询:
from Property p
left join p.ObjectProperty as op
where op is null
这假设您有一个名为 Property
的 class,代表 property
table。它还假定 object_property
table 具有实体 class ObjectProperty
,并且 Property
具有对 ObjectProperty
.[=19= 的引用]
你有两个table,
table property ( id, title, description, status, primary key(id) )
table object_property ( id, object_id, property_id, value, primary key(id) )
其中 object_property.property_id 是 property.id
的外键您可以连接这些 table 以获取共享公共键的行(元组),
SELECT p.id, p.title, p.description, p.status, op.id, op.object_id, op.value
FROM property AS p LEFT JOIN object_property AS op ON p.id = op.property_id ;
您可以使用 INNER JOIN、LEFT JOIN、RIGHT JOIN,具体取决于您要匹配的内容,但是这里您要查找 属性 中的行object_property table(LEFT OUTER JOIN 的 OUTER 部分)中不存在 id,
SELECT p.id, p.title, p.description, p.status
FROM property AS p
WHERE p.id NOT IN (SELECT DISTINCT op.property_id FROM object_property AS op ) ;