【问题标题】:SELECT from different table and LEFT JOIN从不同的表中选择并左连接
【发布时间】:2015-06-19 13:21:29
【问题描述】:

原来的查询是

SELECT user_id, user_location, displayname FROM engine4_users WHERE user_location IS NOT NULL

其中会打印 user_id、user_location 和 displayname,

Ex:
1 30,32 demo
2 30,31 demo
3 33,32 demo

但现在我需要从另一个表中获取用户图片,而我有这个,

SELECT  s.storage_path as url FROM engine4_storage_files as s
LEFT JOIN  engine4_users as u ON s.file_id = u.photo_id

仅打印 URL

我需要将该网址添加到第一个查询中

【问题讨论】:

  • 只需将第一个查询中缺少的字段添加到第二个查询中?
  • 它们在不同的表中
  • 您在第二个查询中同时使用这两个表?只需将SELECT s.storage_path 更改为SElECT u.*, s.storage_path

标签: mysql sql mysqli socialengine mariasql


【解决方案1】:

试试这个:

SELECT u.user_id, u.user_location, u.displayname, s.storage_path as url 
FROM engine4_users u 
LEFT JOIN engine4_storage_files s
ON s.file_id = u.photo_id 
WHERE u.user_location IS NOT NULL

在 cmets 中按请求扩展:

SELECT u.user_id, u.user_location, u.displayname, w.value as about, s.storage_path as url 
FROM engine4_users u 
LEFT JOIN engine4_user_fields_values w 
ON w.item_id = u.user_id
LEFT JOIN engine4_storage_files s
ON s.file_id = u.photo_id 
WHERE u.user_location IS NOT NULL

【讨论】:

  • 它有这个错误“'字段列表'中的未知列's.storage_path'”。我认为这是正确的;我对吗? SELECT u.user_id, u.user_location, u.displayname, storage_path as url FROM engine4_users u LEFT JOIN engine4_storage_files ON file_id = u.photo_id WHERE u.user_location IS NOT NULL
  • 哦,很抱歉我忘记给 engine4_storage_files 提供一个别名。我已经编辑了我的答案,所以现在应该可以使用了:)
  • 如果我想添加这个SELECT w.value as about FROM engine4_user_fields_values w WHERE w.field_id = 13
  • 这个字段和engine4_users有什么关系吗?它总是有数据还是可能为NULL?这个字段是做什么用的?
  • 拉取用户的简短描述,关系为 user_id = item_id
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 2018-03-30
  • 2015-05-08
  • 2023-03-03
  • 2013-10-11
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多