3 ms·
Not the parent poster but it's queries like these: Select user.id, user.name, sum(tx.amount) from user inner join txn on (user.id = txn.uid) group by user.id
by lmz 8y ago
Not the parent poster but it's queries like these:
Select user.id, user.name, sum(tx.amount) from user inner join txn on (user.id = txn.uid) group by user.id
User.name is not in the group by list so it is picked arbitrarily from the rows in the group. It's harmless here but not in all cases.
- Groxx 8y agoTBH I like the ability to do this. Sometimes you truly don't care which value you get, you just want one. Sometimes you have application-level constraints which mean the one it picks is guaranteed to be correct, but you can avoid the cost of enforcing that (at insertion time and at lookup time). It's a handy tool when it's appropriate. But hell yes, tools should warn you about this loudly, as it's not generally correct.