Hallo Leute,
Ich habe zwei Tabellen user und user_vars.
CREATE TABLE `user` (
`id` int(14) NOT NULL auto_increment,
`user` varchar(255) NOT NULL,
`firstname` varchar(100) NOT NULL,
`lastname` varchar(100) NOT NULL,
);
CREATE TABLE `user_vars` (
`user_id` int(14) NOT NULL,
`varname` varchar(100) NOT NULL,
`text` text NOT NULL,
)
Ich möchte ein limit von zwei usern aus user.
aus der user_vars möchte ich drei zu den usern gehörige attribute rausfischen (country, zodiac, gender). das sind aber keine felder, sondern varname = 'country', text = 'germany' usw.
Es besteht die möglichkeit, das user1 keinen eintrag zu country hat, der andere keinen zu zodiac oder beides usw.
jetzt hatte ich die idee ein limit auf zwei mal drei zu setzen.
also zwei user will ich haben mal drei attributen = 6
meine abfrage:
SELECT user.id, user, firstname, lastname, (
IF( varname = 'country', text, '' )
) AS country, (
IF( varname = 'gender', text, '' )
) AS gender, (
IF( varname = 'zodiac', text, '' )
) AS zodiac
FROM user
LEFT JOIN user_vars ON user_id = user.id
LIMIT 6
problem. wenn einem user der eintrag für country fehlt bekomme ich drei user zurück, weil der left join kein limit kennt.
ich hoffe meine frage einigermaßen verständlich ausgedrückt zu haben.
hat jemand einen tip?
Ich habe zwei Tabellen user und user_vars.
CREATE TABLE `user` (
`id` int(14) NOT NULL auto_increment,
`user` varchar(255) NOT NULL,
`firstname` varchar(100) NOT NULL,
`lastname` varchar(100) NOT NULL,
);
CREATE TABLE `user_vars` (
`user_id` int(14) NOT NULL,
`varname` varchar(100) NOT NULL,
`text` text NOT NULL,
)
Ich möchte ein limit von zwei usern aus user.
aus der user_vars möchte ich drei zu den usern gehörige attribute rausfischen (country, zodiac, gender). das sind aber keine felder, sondern varname = 'country', text = 'germany' usw.
Es besteht die möglichkeit, das user1 keinen eintrag zu country hat, der andere keinen zu zodiac oder beides usw.
jetzt hatte ich die idee ein limit auf zwei mal drei zu setzen.
also zwei user will ich haben mal drei attributen = 6
meine abfrage:
SELECT user.id, user, firstname, lastname, (
IF( varname = 'country', text, '' )
) AS country, (
IF( varname = 'gender', text, '' )
) AS gender, (
IF( varname = 'zodiac', text, '' )
) AS zodiac
FROM user
LEFT JOIN user_vars ON user_id = user.id
LIMIT 6
problem. wenn einem user der eintrag für country fehlt bekomme ich drei user zurück, weil der left join kein limit kennt.
ich hoffe meine frage einigermaßen verständlich ausgedrückt zu haben.
hat jemand einen tip?
Kommentar