Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL:在不知道所有列名的情况下,从联接中的一个表中选择所有值?_Mysql_Sql - Fatal编程技术网

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

Mysql SQL:在不知道所有列名的情况下,从联接中的一个表中选择所有值?,mysql,sql,Mysql,Sql,您好,我想知道以下内容是否可能(在MySQL中):有一个连接两个表的简单查询: SELECT * FROM `contact_attending_appointment` AS tcon,`contact` AS tget WHERE tcon.appointment_id = 2 AND tget.id = tcon.contact_id; 此查询将返回连接在一起的两个表(tcon和tget)的值。但是,我只希望有一个表的列 基本上,在SQL中,您可以这样实现: SELECT col_1,c

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

SELECT * FROM `contact_attending_appointment` AS tcon,`contact` AS tget WHERE tcon.appointment_id = 2 AND tget.id = tcon.contact_id;
此查询将返回连接在一起的两个表(tcon和tget)的值。但是,我只希望有一个表的列

基本上,在SQL中,您可以这样实现:

SELECT col_1,col_2,...,col_n FROM ...
或者你可以用

SELECT * FROM ...
但是,我希望有类似的内容(因为我不知道tget的列的名称)


是否有一个通用的解决方案,或者这是不可能的?

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

SELECT tget.* FROM contact AS tget ...
SELECT c.*
FROM `contact_attending_appointment` caa INNER JOIN
     `contact` c
     ON c.id = caa.contact_id 
WHERE caa.appointment_id = 2;
重要的变化是:

  • 使用正确的ANSI join语法,条件在
    on
    子句中,而不是在
    where
  • 使用作为表名缩写的表别名。查看查询的人(即使是两个月后的你)会发现遵循逻辑更容易

  • 谢谢你更新了我的基本SQL技能,我希望它会这么简单:-)不客气。也可以像@Gordon说的那样在子句上使用
    JOIN
    SELECT c.*
    FROM `contact_attending_appointment` caa INNER JOIN
         `contact` c
         ON c.id = caa.contact_id 
    WHERE caa.appointment_id = 2;