2016-11-17 87 views
0

我有两个表'表A'和'表B',我想从表A(10列)中选择所有列并从表B中选择1列,以便我有1共有11列(表A中10个,表B中1个)。MySQL单行多列多表

  • 我想避免使用“作为别名”,并使用原始列名
  • 我的表有没有共同的ID列
  • 我的两个SELECT语句返回1行中的每个(1行从表A和1从表B)
  • 我只想从我的结果从第一个选择语句,并加入第二个选择语句的结果有多个列(1行),而不是一列(所以我不会使用UNION,也许INNER JOIN但不知道如何使用它?)

下面的语句是接近我需要 - 它从2个表返回2列(ALIAS_NAME,alias_imageurl):

SELECT (SELECT name FROM `users`) AS alias_name,(SELECT imageurl FROM `pictures` WHERE profilepicture LIKE '1') AS alias_imageurl 

与上述(除了被迫使用列名的别名)是问题我只能从表A返回1列而不是全部,因为下面的查询返回一个错误:操作应该包含1列

SELECT (SELECT * FROM `users`),(SELECT imageurl FROM `pictures` WHERE profilepicture LIKE '1') AS alias_imageurl 
+0

你有一个非常不寻常的要求。你能激励你为什么认为这是一个好主意吗? –

回答

1

这是你想要的吗?

SELECT u.*, p.imageurl 
FROM users u cross join 
    picture p 
WHERE p.profilepicture LIKE '1'; 
+0

无法识别的关键字。 (在位置36处的“十字”附近) – user3560827

+0

@ user3560827。 。 。 MySQL绝对支持交叉连接:http://dev.mysql.com/doc/refman/5.7/en/join.html。 –