Mysql从一个表中选择All,从另一个表中选择一些使用别名

时间:2016-05-12 17:18:33

标签: php mysql

我发布此问题是因为我确实找到了a similar question,但他们没有使用别名。

我有两张桌子 - 我想从table1抓取所有内容,然后从user_name抓取Teamtable2

我的原始查询是抓取table2

中的所有内容
SELECT * 
FROM qabin.allqas t1 
JOIN login.users t2 
ON (t1.Submitter = t2.user_name) 
WHERE t1.Status='Complete'

这一切都很好,很好,但我想得到user_nameTeam

为了让事情变得更有趣,它们位于不同的数据库中,尽管它不是一个问题。

一个位于qabin数据库中,另一个位于login数据库中。

我试过了:

SELECT 
  qabin.allqas.* AS t1,
  login.users.Team,
  login.users.user_name
JOIN login.users t2
ON (t1.Submitter = t2.user_name)
WHERE t1.Status='Complete'

我需要t1和t2别名,因为它们在别处用于构建更大的查询字符串。

提前致谢!

3 个答案:

答案 0 :(得分:1)

为什么不使用子查询?

SELECT * 
FROM qabin.allqas t1 
JOIN (SELECT user_name, Team FROM login.users) t2 
ON (t1.Submitter = t2.user_name) 
WHERE t1.Status='Complete'

答案 1 :(得分:1)

您无法为一组列使用一个别名(t1)。我想你要找的是:

SELECT t1.*, t2.team, t2.user_name
FROM qabin.allqas t1 
JOIN login.users t2 
    ON (t1.Submitter = t2.user_name) 
WHERE t1.Status='Complete'

我建议使用t1中的实际列名而不是t1。*

答案 2 :(得分:1)

尝试此查询:

SELECT t1.*, t2.user_name, t2.Team
FROM qabin.allqas t1 
JOIN login.users t2 
ON t1.Submitter 1= t2.user_name
WHERE t1.Status='Complete'