2012-03-05 2 views
0

Im новое к этой форме и hopefuly Я могу получить некоторую awesome помощь!Соедините две таблицы и получите самую последнюю дату.

Я получил три таблицы

1 "companies" 
    ID 

2 "log" 
    compid 
    datum (date) 

3 "sales" 
    datumnow (datetime) 
    uppdaterad (datetime) 

Я хочу сравнить журнал и продажи и получить последние или «новейшую» запись и отображение списка ASC компаний из таблицы 1, только одна компании для каждой строки. (Сравнение ИГД, datumnow & uppdaterad и получить наибольшее значение даты, отображаемое на одной строке для каждого из идентификаторов компаний)

#RESULT 
Rover - 2012-01-15 
Daniel - 2012-02-01 
Damien - 2012-03-05 

I've Теперь боролись с этим в течение нескольких дней и не могу ухватить из решение. Приложение. Любая помощь! Thanx.

+0

Что касается 'sales' к другим таблицам? У 'sales' также есть' compid' столбец? –

ответ

0

Вы можете использовать GREATEST(), чтобы вернуть самую последнюю дату из этих трех столбцов. Это предполагает, что у вас есть другой столбец в sales, который относится к другим таблицам. Из приведенной выше структуры отношения неясно.

SELECT 
    companies.ID, 
    GREATEST(log.datum, sales.datumnow, sales.uppdatedad) AS mostrecent 
FROM 
    companies LEFT JOIN log ON companies.ID = log.compid 
    /* Assumes sales also has a compid column. Will edit if new info is posted */ 
    LEFT JOIN sales ON companies.ID = sales.compid 
WHERE log.userid='$userID' AND sales.seller='$userID' 

Только для одной строки с датой макс в компании, использовать MAX() агрегат с GROUP BY:

SELECT 
    companies.ID, 
    MAX(GREATEST(log.datum, sales.datumnow, sales.uppdatedad)) AS mostrecent 
FROM 
    companies LEFT JOIN log ON companies.ID = log.compid 
    /* Assumes sales also has a compid column. Will edit if new info is posted */ 
    LEFT JOIN sales ON companies.ID = sales.compid 
WHERE log.userid='$userID' AND sales.seller='$userID' 
GROUP BY companies.ID 
+0

Удивительный! Это сделал трюк! Миллион! Я забыл упомянуть одно. Код, который вы мне дали, работал отлично, за исключением того, что он дает мне все строки =) Где я могу добавить «WHERE userid = '$ userID» в log.compid И «WHERE seller =' $ userID» для sales.compid , Надеюсь, вы понимаете. – user1249956

+0

@ user1249956 См. Дополнение выше. Я думаю, что я получил вашу структуру таблицы правильно ... –

+0

Да вы сделали =) И последний .. Где поставить GROUP BY company.ID? – user1249956

Смежные вопросы