、申し訳ありません私の悪い英語:(MySQLはより多くの1つの選択私は疑問だろう
私が持っている複数のテーブル
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) COLLATE utf8_slovak_ci NOT NULL,
`password` varchar(200) COLLATE utf8_slovak_ci NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`,`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci;
CREATE TABLE `user_acl` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_user` int(11) unsigned NOT NULL,
`group` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci;
CREATE TABLE `user_profil` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(100) COLLATE utf8_slovak_ci NOT NULL,
`fullname` varchar(100) COLLATE utf8_slovak_ci NOT NULL,
`profil` text COLLATE utf8_slovak_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci;
クエリの結果クエリの複数のテーブルをJOINと返しますテーブルを有するuser
,user_acl
,user_profil
tことはuser
とuser_profil
は、共通鍵
表user_acl
がテーブルにテーブルuser
(ID)とid_user
共通鍵を持っていますが、user_acl
あり以上の行がテーブルuser
のためのものであると私はテーブルからすべての行を必要としているものid
の下でインデックス化されています1つのクエリでuser_acl
私はこれをテストし、動作するように見えたので、私は、私は理解していません。 – Umbrella
'user_acl'の行があるかどうかに応じて、ただ1行だけ返されたクエリを返す必要があります –
すべての' acl'行を1行に表示したいのですか? – Umbrella