繁体   English   中英

SQL:在不知道所有列名的情况下,从连接中的一个表中选择所有值?

[英]SQL: Select all values from one table in a join while not knowing all column names?

您好,我想知道以下是否可行(在MySQL中):有一个简单的查询连接两个表:

SELECT * FROM `contact_attending_appointment` AS tcon,`contact` AS tget WHERE tcon.appointment_id = 2 AND tget.id = tcon.contact_id;

此查询将返回两个表(tcon和tget)连接在一起的值。 但是,我只希望拥有ONE表的列。

基本上在SQL中你可以像这样实现它:

SELECT col_1,col_2,...,col_n FROM ...

或者你得到所有的专栏

SELECT * FROM ...

但是我希望有类似的东西(因为我不知道他们名字的tget列)

SELECT [* from tget] FROM ...

是否有一般的解决方案或这是不可能的?

SELECT tget.* FROM contact AS tget ...

拉法已经回答了这个问题。 但你似乎在学习SQL。 以下是编写查询的更好方法:

SELECT c.*
FROM `contact_attending_appointment` caa INNER JOIN
     `contact` c
     ON c.id = caa.contact_id 
WHERE caa.appointment_id = 2;

重要的变化是:

  1. 使用正确的ANSI连接语法,其中条件在on子句而不是where
  2. 使用表别名作为表名的缩写。 有人查看查询(即使你在两个月的时间内)会发现更容易遵循逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM