MySQL JOIN with IF conditions

后端 未结 4 951
遇见更好的自我
遇见更好的自我 2020-12-28 15:40

I want to get some results via query simillar to:

SELECT 
    * FROM
    users LEFT JOIN
    IF (users.type = \'1\', \'private\',\'company\') AS details ON
          


        
4条回答
  •  情深已故
    2020-12-28 16:09

    SELECT
      users.*,
      details.info,
      CASE users.type WHEN '1' THEN 'private' ELSE 'company' END AS user_type
    FROM
      users
      INNER JOIN (
        SELECT user_id, info FROM private
        UNION
        SELECT user_id, info FROM company
      ) AS details ON details.user_id = users.id
    

    EDIT: Original version of the answer (question misunderstood):

    SELECT
      *, 
      CASE type WHEN '1' THEN 'private' ELSE 'company' END AS details
    FROM
      users
    WHERE
      users.id = 1
    

提交回复
热议问题