#sql #mysql
Chce połączyć 2 tabele:
Książki(iDKsiążki, Tytuł)
KsiazkiiAutorzy(id, idKsiążki, idAutora)
Autorzy(idAutora,imie, nazwisko)
CHce zrobic FULL OUTER JOINA na tych 3
Tyle że nie ma czegos takiego w mysql.
Mam takie 2 kawałki
oraz
Chce połączyć 2 tabele:
Książki(iDKsiążki, Tytuł)
KsiazkiiAutorzy(id, idKsiążki, idAutora)
Autorzy(idAutora,imie, nazwisko)
CHce zrobic FULL OUTER JOINA na tych 3
Tyle że nie ma czegos takiego w mysql.
Mam takie 2 kawałki
((SELECT * FROM Autorzy A LEFT JOIN Ksiazko_Autorzy K_A ON A.id_Autora = K_A.id_Autora)
UNION
(SELECT * FROM Autorzy A RIGHT JOIN Ksiazko_Autorzy K_A ON A.id_Autora = K_A.id_Autora))
oraz
((SELECT * FROM Ksiazki K
@ludzik: oczywiście 3 tabele. I generalnie wszystko co w nich jest chce wyświetlać.
@ludzik: To znaczy Mamy 2 porządne tabele i jedna załatwiającą relacje wiele do wiele.
Z tych 2 (Książki, Autorzy) chce wszystko.
Z tych 2 (Książki, Autorzy) chce wszystko.
#sql #mysql
Czy może mi ktoś pomóc rozwiązać zagadke?
Poniższy kod - działa
SELECT * FROM Autorzy A LEFT JOIN KsiazkoAutorzy KA ON A.idAutora = KA.id_Autora
UNION ALL
SELECT * FROM Autorzy A RIGHT JOIN KsiazkoAutorzy KA ON A.idAutora = KA.id_Autora
Natomiast jeśli damy nawiasy - nie dziala!
(SELECT * FROM Autorzy A LEFT JOIN KsiazkoAutorzy KA ON A.idAutora = K
Czy może mi ktoś pomóc rozwiązać zagadke?
Poniższy kod - działa
SELECT * FROM Autorzy A LEFT JOIN KsiazkoAutorzy KA ON A.idAutora = KA.id_Autora
UNION ALL
SELECT * FROM Autorzy A RIGHT JOIN KsiazkoAutorzy KA ON A.idAutora = KA.id_Autora
Natomiast jeśli damy nawiasy - nie dziala!
(SELECT * FROM Autorzy A LEFT JOIN KsiazkoAutorzy KA ON A.idAutora = K
@ludzik: Nie wiem czy dobrze urzyłem cross joina. I działa - tak troche
@ludzik: Twoje wydaje sie byc lepsze
@ludzik: U mnie wszystkie pola są na Not null - chyba że o cos innego chodzi
@ludzik: Ok zaraz poprawie i sprawdze czy Twoje działa.
@ludzik: Ok wszystko ładnie. : ) Dzięki
Tylko teraz jeśli chce wybrać te książki które mają autora który ma np. imie Adam to nie mogę. Bo jest ten Union.
Chciałem teraz na koniec dac zapytanie.
W textbosie wpisuje sie nazwisko po którym chcemy wyszukać.
Np. texbox -> Ewa -> wyszukiwanie po imionach
wyświetla książki tam gdzie w imieniu jest Ewa.
Chciałem to Where zrobić
Tylko teraz jeśli chce wybrać te książki które mają autora który ma np. imie Adam to nie mogę. Bo jest ten Union.
Chciałem teraz na koniec dac zapytanie.
W textbosie wpisuje sie nazwisko po którym chcemy wyszukać.
Np. texbox -> Ewa -> wyszukiwanie po imionach
wyświetla książki tam gdzie w imieniu jest Ewa.
Chciałem to Where zrobić
@ludzik: ok, dzieki próbuje.
@ludzik: kiedy wezmę wszystkie pokazuje mi komunikat że id field list is ambiguous
@ludzik:
select a.imie,a.nazwisko,a.narodowosc,a.tytul,a.aidAutora,ka.idKsiazki
from
(
select a.idAutora, a.imie, a.nazwisko, a.narodowosc, ka.idKsiazki
from Autorzy a
left join KsiazkoAutorzy ka
on a.idAutora = ka.idAutora ) a
left join
(
select k.idKsiazki, k.tytul, ka.idAutora
from
ksiazki k
left join KsiazkoAutorzy ka
on k.idKsiazki = ka.idKsiazki)k
on a.idAutora = k.idAutora and a.idKsiazki = k.idKsiazki
union all
select *
from
select a.imie,a.nazwisko,a.narodowosc,a.tytul,a.aidAutora,ka.idKsiazki
from
(
select a.idAutora, a.imie, a.nazwisko, a.narodowosc, ka.idKsiazki
from Autorzy a
left join KsiazkoAutorzy ka
on a.idAutora = ka.idAutora ) a
left join
(
select k.idKsiazki, k.tytul, ka.idAutora
from
ksiazki k
left join KsiazkoAutorzy ka
on k.idKsiazki = ka.idKsiazki)k
on a.idAutora = k.idAutora and a.idKsiazki = k.idKsiazki
union all
select *
from
@ludzik: To jest najlepsze na razie.
Nie wywala błędów ale też nic nie pokazuje. Nie zawiera żadnych rekordów.
select a.idAutora,imie,nazwisko,narodowosc,tytul
from
(
select a.idAutora, a.imie, a.nazwisko, a.narodowosc, ka.idKsiazki
from Autorzy a
left join KsiazkoAutorzy ka
on a.idAutora = ka.idAutora ) a
left join
(
select k.idKsiazki, k.tytul, ka.idAutora
from
ksiazki k
left join KsiazkoAutorzy ka
on k.idKsiazki = ka.idKsiazki)k
on
Nie wywala błędów ale też nic nie pokazuje. Nie zawiera żadnych rekordów.
select a.idAutora,imie,nazwisko,narodowosc,tytul
from
(
select a.idAutora, a.imie, a.nazwisko, a.narodowosc, ka.idKsiazki
from Autorzy a
left join KsiazkoAutorzy ka
on a.idAutora = ka.idAutora ) a
left join
(
select k.idKsiazki, k.tytul, ka.idAutora
from
ksiazki k
left join KsiazkoAutorzy ka
on k.idKsiazki = ka.idKsiazki)k
on
Aaa niee... nadal wywala błąd "The used SELECT statements have a different number of columns"
Chce zrobić coś takiego u siebie
Dynamic Select Option Menu Using Ajax And PHP
Mam coś takiego:
główny plik
http://wklej.to/ekhRj
fetch_data.php
http://wklej.to/1NkHN
Ale mi nie działa => http://i.imgur.com/HEE8jUH.png
document.getElementById("new_select").innerHTML=response;
Ja używam notatnika - to wiesz - mało opcji.
Select state
php
$user = 'admin';
$password = '12345';
$database = 'bazadanychksiazek';
$polaczenie = mysqlconnect('localhost',$user,$password) ;
$db = mysqlselectdb($database, $polaczenie) ;
$select=mysqlquery("select nazwisko from autorzy group by nazwisko");
while($row=mysqlfetcharray($select))
{
echo "<option".$row['nazwisko']."";
}
?>
tutaj jest problem
chyba to
nie działa
@vlah: działa
Nie pojawia sie zadny alert
function fetchselect(val)
{
$.ajax({
type: 'post',
url: 'fetchdata.php',
data: {
get_option:val
},
success: function (response) {
alert(response);
}
});
}
php
if(isset($POST['getoption']))
{
echo $nazwisko
exit;
}
?
if(isset($POST['getoption']))
{
echo $nazwisko;
}
?
success: function (response) {
alert(response);
}
Wydaje mi sie że coś w kawałku kodu ajaxowego.
Sprawdziłam na w3school no i nie trzeba niczego dodatkowego wgrywać żeby ajax działał. Ale może sie myle.
cały cały kod pierwszego pliku
co powinno wypluwać response? u mnie jest puste
if(isset($POST['getoption']))
{
$nazwisko = $POST['get_option'];
echo $nazwisko;
}
?
{
$.ajax({
type: 'post',
url: 'fetchdata.php',
data: {
get_option:val
},
success: function (response) {
alert(response);
}
});
}
@vlah:
$select=mysql_query("select nazwisko from autorzy group by nazwisko");
CHodzi CI o tą zmienną? select ?