簡體   English   中英

只選擇一列不同的mysql

[英]select only one column distinct mysql

我有3個表 - 用戶,期刊,journaltags。 我使用選擇的標簽從3個表中選擇數據。

$sqltheme="SELECT users.id as uid, users.name, users.surname, users.avatar, journals.id, journals.author_id, journals.title, journals.text, journals.create_date, journaltags.name as jname FROM users
INNER JOIN journals ON users.id=journals.author_id
INNER JOIN journaltags ON journaltags.journal_id = journals.id WHERE journals.create_date LIKE ? AND journals.author_id=? AND (".$expression.") ORDER BY journals.id DESC LIMIT 10";
$stmtheme=$conn->prepare($sqltheme);
$stmtheme->execute($array);

但是,如果一個期刊的兩個標簽相同,則兩次選擇同一個期刊。 我怎樣才能制作DISTINCT journals.id。 我試過GROUP BY journals.id但它沒有幫助。

如果我理解正確,你的問題是journaltags表可能有一行或多行,其中包含重復的journal_idname列值,對吧? 您可以在SELECT語句后面的select語句中添加一個distinct子句:

SELECT DISTINCT users.id as uid, users.name, users.surname, users.avatar, journals.id, journals.author_id, journals.title, journals.text, journals.create_date, journaltags.name as jname FROM users
INNER JOIN journals ON users.id=journals.author_id
INNER JOIN journaltags ON journaltags.journal_id = journals.id WHERE journals.create_date LIKE ? AND journals.author_id=? AND (".$expression.") ORDER BY journals.id DESC LIMIT 10

您的GROUP BY journals.id不起作用的原因是因為您還有其他列需要包含在分組中。 添加distinct本質上是一種group by [all selected columns]編寫group by [all selected columns]的簡短方法

暫無
暫無

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

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