Mam taki problem wybieram dane z tabeli i chcę użyć w tym zapytanie join i operacji odejmowania w zapytanie jak dodaje operacje odejmowania i obłsuge join to laravel zwraca błąd.
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in field list is ambiguous (SQL: select `godzina_zaczecia`, `godzina_zakonczenia`, `id`, `poziom_nastroju`, `poziom_leku`, `pobudzenie`, `poziom_zdenerwania`, UNIX_TIMESTAMP(godzina_zakonczenia) - UNIX_TIMESTAMP(godzina_zaczecia) as czas from `nastroj` inner join `przekierowanie_lekow` on `nastroj`.`id` = `przekierowanie_lekow`.`id_nastroj` where id_users = 38 order by godzina_zaczecia DESC limit 10 offset 0)
A teraz pokaże kod.
private function utworz_zapytanie_wyszukiwania() {
$data3 = new \App\Http\Controllers\data();
// $zapytanie = "select poziom_nastroju,godzina_zaczecia,godzina_zakonczenia,poziom_leku,poziom_zdenerwania from nastroj ";
$users = DB::table('nastroj')->join('przekierowanie_lekow', 'nastroj.id', '=', 'przekierowanie_lekow.id_nastroj')->select('godzina_zaczecia','godzina_zakonczenia','id','poziom_nastroju','poziom_leku','pobudzenie','poziom_zdenerwania', DB::raw('UNIX_TIMESTAMP(godzina_zakonczenia) - UNIX_TIMESTAMP(godzina_zaczecia) as czas '));
//SELECT time(godzina_zakonczenia) - time(godzina_zaczecia) as czas FROM `nastroj` order by czas
if (Input::get("nastroj_od") != "" or Input::get("nastroj_do") != "" or Input::get('lek_od') != "" or Input::get('lek_do') != "" or Input::get('pobudzenie_od') != "" or Input::get('pobudzenie_do') != "" or Input::get('zdenerowania_od') != "" or Input::get('zdenerowania_do') != "" or Input::get('nastroj_rok') != "" or Input::get('nastroj_miesiac') != "" or Input::get('nastroj_dzien') != "" or Input::get('nastroj_rok2') != "" or Input::get('nastroj_miesiac2') != "" or Input::get('nastroj_dzien2') != "" or Input::get('opis') != "") {
//print $zapytanie;
/*
$zapytanie .= " where ";
if (Input::get('nastroj_od') != "") {
$zapytanie .= "poziom_nastroju >= " . Input::get('nastroj_od') . " " . " and " . " ";
}
//$zapytanie = $this->usun_and($zapytanie);
if (Input::get('nastroj_do') != "") $zapytanie .= " " . " " . "poziom_nastroju <= " . " " . Input::get('nastroj_do') . " " . Input::get('nastroj_lub') . " ";
//$zapytanie = $this->usun_and($zapytanie);
if (Input::get('lek_od') != ""){
//$zapytanie .= " and ";
$zapytanie .= "poziom_leku >= " . Input::get('lek_od') . " " . " and " . " ";
}
//$zapytanie = $this->usun_and($zapytanie);
if (Input::get('lek_do') != "") $zapytanie .= " poziom_leku <= " . Input::get('lek_do') . " " . Input::get('lek_lub') . " ";
if (Input::get('pobudzenie_od') != ""){
//$zapytanie .= " and ";
$zapytanie .= "pobudzenie >= " . Input::get('pobudzenie_od') . " " . " and " . " ";
}
//$zapytanie = $this->usun_and($zapytanie);
if (Input::get('pobudzenie_do') != "") $zapytanie .= " pobudzenie <= " . Input::get('pobudzenie_do') . " " . Input::get('pobudzenie_lub') . " ";
if (Input::get('zdenerowania_od') != ""){
//$zapytanie .= " and ";
$zapytanie .= "poziom_zdenerwania >= " . Input::get('zdenerowania_od') . " " . " and " . " ";
}
//$zapytanie = $this->usun_and($zapytanie);
if (Input::get('zdenerowania_do') != "") $zapytanie .= " poziom_zdenerwania <= " . Input::get('zdenerowania_do') . " and ";
// $zapytanie = $this->usun_and($zapytanie);
//if (Input::get('nastroj_lub') != "") $zapytanie .= "nastroj_od >= " . Input::get('nastroj_od');
if (Input::get('nastroj_rok') != "") $zapytanie .= "( year(godzina_zaczecia) <=" . Input::get('nastroj_rok') . " and " ;
if (input::get('nastroj_miesiac') != "") $zapytanie .= " month(godzina_zaczecia) =" . Input::get('nastroj_miesiac') . ")";
$zapytanie = $this->usun_and($zapytanie);
$zapytanie2 = DB::select($zapytanie);
print $zapytanie;
//var_dump($zapytanie2);
}*/
//print Input::get('lek_do');
if (Input::get('opis') != "") {
$opis = Input::get('opis');
$users->where("co_robilem", "like" , "%$opis%");
}
if (Input::get("nastroj_od") != "") {
$users->Where('poziom_nastroju','>=',Input::get("nastroj_od"));
}
if (Input::get("nastroj_do") != "") {
$users->Where('poziom_nastroju','<=',Input::get("nastroj_do"));
}
if (Input::get('lek_od') != "") {
//print "dupa";
$users->Where('poziom_leku','>=',Input::get('lek_od'));
}
if (Input::get('lek_do') != "" ) {
$users->Where('poziom_leku','<=',Input::get('lek_do'));
}
if (Input::get('pobudzenie_od') != "" ) {
$users->Where('pobudzenie','>=',Input::get('pobudzenie_od'));
}
if (Input::get('pobudzenie_do') != "") {
print "dupa";
$users->Where('pobudzenie','<=',Input::get('pobudzenie_do'));
}
if (Input::get('zdenerowania_od') != "" ) {
$users->Where('poziom_zdenerwania','=>',Input::get('zdenerowania_od'));
}
if (Input::get('zdenerowania_do') != "" ) {
$users->Where('poziom_zdenerwania','<=',Input::get('zdenerowania_do'));
}
if (Input::get('nastroj_rok') != "") $users->whereRaw("year(godzina_zaczecia) >=" . Input::get('nastroj_rok') );
if (Input::get('nastroj_miesiac') != "") $users->whereRaw("month(godzina_zaczecia) >=" . Input::get('nastroj_miesiac') );
if (Input::get('nastroj_dzien') != "") $users->whereRaw("day(godzina_zaczecia) >=" . Input::get('nastroj_dzien') );
if (Input::get('nastroj_rok2') != "") $users->whereRaw("year(godzina_zaczecia) <=" . Input::get('nastroj_rok2') );
if (Input::get('nastroj_miesiac2') != "") $users->whereRaw("month(godzina_zaczecia) <=" . Input::get('nastroj_miesiac2') );
if (Input::get('nastroj_dzien2') != "") $users->whereRaw("day(godzina_zaczecia) <=" . Input::get('nastroj_dzien2') );
//print $id;
//if (input::get('nastroj_miesiac') != "") $zapytanie .= " month(godzina_zaczecia) =" . Input::get('nastroj_miesiac') . ")";
// elseif (Input::get('lek_lub') == " and " and Input::get('lek_do') != "") {
// $users->andWhere('poziom_leku','<',Input::get('lek_do'));
//}
//print Input::get('opis');
//$dziel = $this->podziel_opis();
//$this->wyszukaj_wg_opisu($dziel);
//$this->wyszukaj_wg_opisu($dziel);
//print $t2->co_robilem;
//}
//$users->get();
//$users = DB::table('nastroj')->where('poziom_nastroju',0)->Where('poziom_nastroju',0)->get();
//return $t;
}
$id_user = Auth::User()->id;
$users->whereRaw("id_users = $id_user");
$sortuj = Input::get("sortuj");
$users->orderByRaw("$sortuj DESC");
$this->ilosc_stron = $users->count();
//print $count;
print "<font color=green>" . ($this->strona-1) * 10 . "</font>";
$users->offset(($this->strona-1) * 10)->limit(10);
$this->zapytanie = $users->get();