Zadejte hledaný výraz...

SELECT – subquery returns more than one row

php student
verified
rating uzivatele
10. 7. 2012 16:48:27
Dobrý den
začínám s MySQL a nevím si rady s tímto problémem - zkouším sí naprogramovat jednoduchý chat, mám dvě tabulky
USERS (id, username)
CONTACTS (user_id, contact_id)
myšlenka je taková, že se zaloguji jako uživatel, např. s ID = 1, potom v tabulce CONTACTS vyhledám všechny mé kontakty podle user_id. Potud vše OK, jenže nevím jak to udělat, pokud například chci vytvořit jmenný seznam kontaktů - mám například tři kontakty, contact_id = 2, 3, 4, což jsou zase nějací uživatelé v tabulce USERS, takže contacts.contact_id = users.user_id.
snad jsem to nastínil srozumitelně.
sestavil jsem tento dotaz:
když toto zadám do mysql konzole, vyhodí mi to chybu ERROR 1242 (21000): Subquery returns more than 1 row.
Neví někdo jak toto vyřešit? Popřípadě třeba i jinak postavit tabulky? Předem děkuji.
10. 7. 2012 16:48:27
https://webtrh.cz/diskuse/select-subquery-returns-more-than-one-row/#reply783468
acidclick
verified
rating uzivatele
10. 7. 2012 16:55:25
10. 7. 2012 16:55:25
https://webtrh.cz/diskuse/select-subquery-returns-more-than-one-row/#reply783467
vlnk
verified
rating uzivatele
(4 hodnocení)
10. 7. 2012 17:09:05
stejný výsledek, ale většinou rychlejší...
select users.username from users where exists(select 1 from contacts where user_id=1 and users.id=contact_id)
10. 7. 2012 17:09:05
https://webtrh.cz/diskuse/select-subquery-returns-more-than-one-row/#reply783466
php student
verified
rating uzivatele
10. 7. 2012 17:11:24
Napsal acidclick;817428
Funguje, díky moc! :-)
10. 7. 2012 17:11:24
https://webtrh.cz/diskuse/select-subquery-returns-more-than-one-row/#reply783465
Dominique
verified
rating uzivatele
(5 hodnocení)
10. 7. 2012 17:59:08
Sice vim, ze ti acidclick pomohl, ale musim se zeptat proc takovou trivialni vec resite pomoci dvou selectu, kdyz jde pouzit AND?
MySQL umi dobre spojovat sloupce z ruznych tabulek v jednom prikazu...
SELECT users.`username`, users.`id`, contacts.`contact_id`, contacts.`user_id` FROM users, contacts WHERE users.`id` = contacts.`contact_id` AND contacts.`user_id` = '1'
10. 7. 2012 17:59:08
https://webtrh.cz/diskuse/select-subquery-returns-more-than-one-row/#reply783464
php student
verified
rating uzivatele
10. 7. 2012 19:59:50
Napsal Bluemoon;817456
Sice vim, ze ti acidclick pomohl, ale musim se zeptat proc takovou trivialni vec resite pomoci dvou selectu, kdyz jde pouzit AND?
MySQL umi dobre spojovat sloupce z ruznych tabulek v jednom prikazu...
SELECT users.`username`, users.`id`, contacts.`contact_id`, contacts.`user_id` FROM users, contacts WHERE users.`id` = contacts.`contact_id` AND contacts.`user_id` = '1'
Protože jak jsem psal.. začínám :-) Jsem samouk a postupuju tak že si řeknu, tak, teď si zkusím něco hodně originálního, třeba fotogalerii :-D, nu a teď jsem si chtěl udělat něco ajaxového, tak volba padla na chat. Jinak, pokud Vás napadá, jaké jiné příkladové aplikace je dobré si vyzkoušet napsat, uvítám všechny podněty.
Jinak díky za tip. Ale o MySQL si stejně asi ještě přečtu nějakou knihu.
10. 7. 2012 19:59:50
https://webtrh.cz/diskuse/select-subquery-returns-more-than-one-row/#reply783463
Pro odpověď se přihlašte.
Přihlásit