我有两张桌子。
表1:foo
create table foo (id int, name string, description varchar(255));
foo的数据如下:
1, foo1, fooooo1111
2, foo2, fooooo2222
3, foo3, fooooo3333
4, foo4, fooooo4444
表2:栏
create table bar (foo_id int, value string, data varchar(255));
栏的数据如下:
foo1, bar11, {"event":"test"}
foo1, bar22, {"event":"test111"}
foo2, bar33, {"event":"test222"}
我想执行以下查询。
select foo.id As Id, foo.name As Name, bar.* As b from foo LEFT JOIN bar on foo.Id = bar.foo_id;
当我设置列栏时。*作为b,它无法获取数据。我该怎么办?
答案 0 :(得分:3)
您可以设置列或表的别名。但
bar.* As b
意味着将b
设置为表bar
的所有列的别名,这显然不起作用。
答案 1 :(得分:1)
您可以将列栏。*设置为b,因为这是条形图表中的所有列,您必须指定要设置为 b 的colunm示例:
SELECT foo.id As Id, foo.name As Name, bar.id As b
FROM foo
LEFT JOIN bar on foo.Id = bar.foo_id;
或者如果你想从bar表中获取所有行而不是:
SELECT foo.id As Id, foo.name As Name, bar.*
FROM foo
LEFT JOIN bar on foo.Id = bar.foo_id;
由于