簡體   English   中英

當我們在PHP / MYSQL中聯接4個表時,需要基於id的不同值

[英]Need distinct value based on id when we JOIN 4 tables in PHP/MYSQL

這是我的SQL查詢,它聯接4個表,並且可以正常工作。

SELECT pl.lms_id, u.id,  REPLACE(trim(u.`url`), 'www.', '') AS url, trim(u.`name`) as name, p.date_removed, p.status, p.ignore_status FROM `adl_seo_status` p INNER JOIN `adl_user_profiles` u on p.profile_id = u.id  INNER JOIN adl_tw_profile_acc_type ac on p.profile_id = ac.profile_id LEFT JOIN `adl_lms_prof_list` pl on u.id = pl.profile_id  WHERE u.`vpg_id`='2' AND u.`status` = 'Y' and ac.acc_type_id = '2' ORDER BY u.`url` ASC, p.id DESC

我面臨的一個問題是,表adl_seo_status具有單個profile_id的多個條目。 因此,這些帳戶在我的列表中重復出現。 我希望該帳戶作為一行,這意味着基於profile_id的帳戶的獨特價值。

您需要使用分組依據,例如:

SELECT
  pl.lms_id,
  u.id,
  REPLACE(trim(u.`url`), 'www.', '') AS url,
  trim(u.`name`)                     AS name,
  p.date_removed,
  p.status,
  p.ignore_status
FROM `adl_seo_status` p INNER JOIN `adl_user_profiles` u ON p.profile_id = u.id
  INNER JOIN adl_tw_profile_acc_type ac ON p.profile_id = ac.profile_id
  LEFT JOIN `adl_lms_prof_list` pl ON u.id = pl.profile_id
WHERE u.`vpg_id` = '2' AND u.`status` = 'Y' AND ac.acc_type_id = '2'
ORDER BY u.`url` ASC, p.id DESC GROUP BY p.profile_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM