选择特定列中具有相同值的所有内容

时间:2014-12-15 15:56:47

标签: mysql

我试图让所有与特定用户共享相同价值的用户。

例如TBL用户:

id | user | color | value 

 1   Misha  red      30
 2   Kurt   blue    249
 3   Lars   grey     30
 4   Dave   black   249
 5   Steve   orange  30

如果我想得到像Lars这样的用户,我应该得到:Misha,Steve和Lars。如果我想让像Kurt这样的用户,我应该得到:Dave,Kurt。

我发布实际的sql我得到它包括一个连接,我有一些语法错误。

$sql = "SELECT DISTINCT(value) FROM users 

WHERE value IN (SELECT value FROM users WHERE user = '{$user}')
INNER JOIN posts  ON users.user  = posts.user
ORDER BY posts.post_date DESC LIMIT {$start}, {$limit} ";

任何帮助都会感激不尽。

2 个答案:

答案 0 :(得分:3)

SELECT
`user`
FROM your_table
WHERE value IN (SELECT value FROM your_table WHERE `user` = 'Lars');

编辑:

你需要换行。

$sql = "SELECT DISTINCT(value) FROM users 
INNER JOIN posts  ON users.user  = posts.user
WHERE value IN (SELECT value FROM users WHERE user = '{$user}')
ORDER BY posts.post_date DESC LIMIT {$start}, {$limit} ";

答案 1 :(得分:0)

在你的桌子别名的帮助下,我认为这样的事情。

SELECT * FROM YOUR_TABLE YT WHERE YT.VALUE IN (SELECT VALUE FROM YOUR_TABLE); 

如果它不存在,你可以在mysql中寻找IN对应的DB2语法。