我不确定这是否可行。但是是否可以在2个表上进行连接,但只返回其中一个表的数据。我想根据条件加入这两个表,但我只想要其中一个表的数据。这有可能与SQL,如果是这样如何?阅读文档后,似乎当您进行连接时,您将获得两个表的数据。谢谢你的帮助!
答案 0 :(得分:1)
您可以从两个表中获取数据,因为加入基于" Cartesian Product" + " Selection&#34 ; 即可。但是在加入之后,您可以使用所需的列执行" Projection" 。
SQL有一个简单的语法:
t1.*
您可以通过别名选择表:t2.*
或*
。符号where
表示"所有字段"。
您还可以加入order by
子句,outer join
或其他加入类型,例如cross join
或{{1}}。
答案 1 :(得分:1)
典型的SQL查询有多个子句。
SELECT
子句提到了结果集中所需的列。
FROM
子句(包括JOIN
个操作)提到了要从中检索这些列的表。
WHERE
子句过滤结果集。
ORDER BY
子句指定结果集中行的显示顺序。
还有一些其他条款,例如GROUP BY
和LIMIT
。你可以阅读这些。
要执行您的要求,请选择所需的列,然后提及所需的表。这样的事情。
SELECT t1.id, t1.name, t1.address
FROM t1
JOIN t2 ON t2.t1_id = t1.id
这为您提供t1
中与t2
匹配的行的数据。
专业提示:避免使用SELECT *
。相反,请提及您想要的列。
答案 2 :(得分:1)
如果您愿意,通常可以使用exists
(或in
)完成此操作:
select t1.*
from table1 t1
where exists (select 1 from table2 t2 on t2.x = t1.y);
虽然您可以使用join
,但如果table2
中存在重复的匹配项,则会冒成倍增结果集中行数的风险。使用exists
(或in
)不存在此类重复的危险。我也发现逻辑更自然。
答案 3 :(得分:0)
如果您加入2张桌子。
您可以使用 SELECT 选择所需的数据
如果你想获得一个数据表,你可以这样做,只需选择一个表日期
SELECT b.title
FROM blog b
JOIN type t ON b.type_id=t.id;
如果要从两个表中获取数据,可以执行此操作,选择两个表日期。
SELECT b.title,t.type_name
FROM blog b
JOIN type t ON b.type_id=t.id;