Mysql SQL:在不知道所有列名的情况下,从联接中的一个表中选择所有值?
您好,我想知道以下内容是否可能(在MySQL中):有一个连接两个表的简单查询: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
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;
重要的变化是:
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;