我正在尝试从多个表中选择有两个条件的所有内容。
但是他们只从第二张表中带回一个结果,而不是一切
这是MySql代码
SELECT *
FROM `core_users`.`users`
LEFT JOIN `core`.`orders`
ON `core_users`.`users`.`uid` = `core`.`orders`.`uid`
LEFT JOIN `core_users`.`crm`
ON `core_users`.`users`.`uid` = `core_users`.`crm`.`uid`
WHERE (`core_users`.`users`.`signup_timestamp` BETWEEN '1476626400' AND '1476712800'
OR (`core_users`.`crm`.`type` = 'refresh_5in5' AND `core_users`.`crm`.`value` BETWEEN '1476626400' AND '1476712800') )
这只会从crm表中返回1个结果。但是我希望它能从crm表中恢复所有结果。
如果在两个表上都有WHERE子句,我如何从users
,orders
和crm
带回所有内容?
答案 0 :(得分:1)
尝试select users.*, orders.*, crm.*
请注意,在这种情况下,如果您在每个表格中都有id
这些表格中的公共列,则会导致不明确的列名称错误。要摆脱这种情况,您需要使用别名users.id as user_id
,orders.id as order_id
,crm.id as crm_id
等来指定这些内容。