Mysql Join 2表为每个相关数据返回一行
我试图用不同的照片url连接两个表,但我无法这样做。我不知道这是否可能 我的表与下面的示例相似,我想加入它们Mysql Join 2表为每个相关数据返回一行,mysql,Mysql,我试图用不同的照片url连接两个表,但我无法这样做。我不知道这是否可能 我的表与下面的示例相似,我想加入它们 +-------------++----------------------------+ |表1 | |表2| +----+------+-------+ +----+-----------+-----------+ |id |姓名|地点| | id |照片| url |表格1 | id| +----+------+-------+ +----+-----------+
+-------------++----------------------------+
|表1 | |表2|
+----+------+-------+ +----+-----------+-----------+
|id |姓名|地点| | id |照片| url |表格1 | id|
+----+------+-------+ +----+-----------+-----------+
|1 | abc | xyz | 1 | link1 | 1|
|2 | def | jiu | 2 | link2 | 1|
|3 | efw | jlo | 3 | link3 | 3|
+----+------+-------+| 4 | link4 | 2|
+----+-----------+-----------+
+-------------------------------+
|加入|
+----+------+-------+-----------+
|id |姓名|地点|照片| url|
+----+------+-------+-----------+
|1 | abc | xyz |链接1|
|2 | def | jiu | link3|
|3 | efw | jlo | link4|
+----+------+-------+-----------+
我是MySQL新手,还在学习。我被困在这里,我感谢任何解决方案。您可以使用
加入:
SELECT t1.*,
t2.photo_url
FROM table1 t1
JOIN table2 t2
ON (t1.id = t2.table1_id)
JOIN (
SELECT min(id) AS id,
table1_id
FROM table2
GROUP BY table1_id
) t3 ON (t2.id = t3.id
AND t2.table1_id = t3.table1_id)
SelfJOIN
对于table2
是根据table1\u id
仅拾取照片
你有没有试过这样的方法:
SELECT table1.id,
table1.name,
table1.place,
table2.photo_url
FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id;
我基本上是根据id
标准从to表中选择所需字段的
您可以在这里查看MySQL教程:取决于您如何定义所需的photo\u url
的值
仅假设MIN
1:-
SELECT table1.id,
table1.name,
table1.place,
MIN(table2.photourl)
FROM table1
LEFT OUTER JOIN table2
ON table1.id = table2.table1_id
GROUP BY table1.id,
table1.name,
table1.place
如果您不关心哪一个(虽然这在MySQL中有效,但它是不可靠的SQL):-
如果您想要更复杂一点的内容,那么您可能需要使用子查询为每个table1\u id
获取所选的photo\u url
,然后JOIN
将该子查询连接到table1
您要连接哪些表?前两个?为什么表1ID为1时为link1而不是link2?
SELECT table1.id,
table1.name,
table1.place,
table2.photo_url
FROM table1
LEFT OUTER JOIN table2
ON table1.id = table2.table1_id
GROUP BY table1.id,
table1.name,
table1.place